У меня базовый пружинный контроллер
package org.foo;
@Controller
public class HelloWorldController implements IHelloWorldController
{
@RequestMapping(value = "/b/c/", method = RequestMethod.GET)
public void doCriticalStuff(HttpServletRequest request, HttpServletResponse response){
//...
}
}
Проверено через curl -X GET http://myIP:myPort/b/c/
Который работает отлично.
Если я настраиваю Управление транзакциями через
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="helloWorldPC"
expression="execution(* org.foo.IHelloWorldController.*(..)) && !execution(* java.lang.Object.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="helloWorldPC" />
</aop:config>
Сопоставление больше не работает. Я получаю сообщение об ошибке 404 на стороне клиента и на сервере метод не введен. При выполнении теста JUnit с точкой останова в doCriticalStuff
я вижу AopUtils.invokeJoinpointUsingReflection(Object, Method, Object[]) line: ...
, поэтому используется конфигурация транзакции.
Но отображение больше не работает. Есть идеи?
Я использую Spring 3.0.2.RELEASE