私のアプリケーションでは、別のアプリケーションに接続してデータを保存しようとしています。その部分で、そのデータを保存することに成功しました。しかし、問題は、電子メールを保存するときに、事前定義された電子メールのアドバイスをトリガーする必要があることです。しかし、それは起こっていません。これは、この質問で説明されている接続する私のコードであり、他のアプリケーションのサーブレットの私のコードは.
ApplicationContext context = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
String uname = request.getParameter("userName");
String pwd = request.getParameter("pwd");
String email = request.getParameter("email");
userDao.insertUser(user);
passDao.insertPassword(password);
User u1 =userDao.getUser(domain, uname);
Email command = new Email();
command.setCreationDate(new Date());
command.setAddress(email);
command.setUser(u1);
command.setLocale(new Locale("en","US"));
log.debug("Upto user adding data");
JosService josService = (JosService)context.getBean("josService");
try {
log.debug("before adding email data");
josService.insertEmail(u1,command);
log.debug("After adding email data");
} catch (Exception e) {
log.error("Setting and sending email address is failed");
e.printStackTrace();
}
log.debug("Data saved succesfully");
response.setStatus(200);
私のapplicationcontext.xmlには、このようなアドバイスが定義されています
<!-- ================ ADVISOR DEFINITIONS ================ -->
<bean id="emailAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">
<property name="advice">
<ref local="insertEmailAfterReturningAdvice" />
</property>
<property name="pattern">
<value>.*insertEmail</value>
</property>
</bean>
<!-- ================ ADVICE DEFINITIONS ================ -->
<bean id="insertEmailAfterReturningAdvice" class="cn.net.openid.jos.service.InsertEmailAfterReturningAdvice">
<constructor-arg>
<ref local="emailConfirmationInfoSendTaskExecutor" />
</constructor-arg>
</bean>
<bean id="emailConfirmationInfoSendTaskExecutor" class="cn.net.openid.jos.service.EmailConfirmationInfoSendTaskExecutor">
<constructor-arg ref="taskExecutor" />
<property name="mailSender" ref="mailSender" />
<property name="passwordDao" ref="passwordDao" />
</bean>