Я пытаюсь заставить Spring работать в моем проекте Playframework 2.1, но пока не добился успеха. Я следую Guilliaume Bort's tutorial о том, как заставить его работать. Проект запускается правильно, он вызывает действие (через GET) signupForm штраф (как описано ниже), но когда я пытаюсь отправить форму, я получаю следующее исключение:Получение Spring для работы с Play Framework 2.1 (java)
Это, кажется, не нравится @Transactional аннотация. Это часть моего код контроллера:
@org.springframework.stereotype.Controller
public class UserController extends Controller {
@Autowired
private UserService userService;
public Result signupForm() {
// This is the initial method called via GET (works fine)
}
@Transactional
public Result signup() {
... code ....
userService.save(user); // call to the injected service
... more code ...
}
}
... mode code ...
Это мой components.xml (помещаемый в/конфе):
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="controllers, services, dataaccess, models"/>
</beans>
(DATAACCESS где размещены мой даосские в)
Это часть моего обслуживания (на всякий случай это необходимо):
@Service("userService")
public class UserService {
@Autowired
private UserDao userDao;
... more code ...
И, наконец, это является частью соответствующего Dao для этого случая:
@Repository("userDao")
public class UserDaoJpa implements UserDao {
... more code ...
Как вы можете видеть на изображении ниже, метод getControllerInstance в Global пытается получить экземпляр транзакционной аннотацию, и я не знаю, почему. Для меня это не должно пытаться создать экземпляр. Весной это не событие в автосканируемых пакетах.
Спасибо за любую помощь вы можете предоставить.
PS: Я новичок в весне.
Genius! Оно работает! Спасибо. – Franco
У меня возникла новая проблема: теперь я получаю исключение: «Execution exception [[RuntimeException: No EntityManager, связанный с этим потоком. Попробуйте аннотировать ваш метод действий с помощью @ play.db.jpa.Transactional]]». Кажется, потому, что я удаляю play.db.jpa.Transactional из своего действия и добавил весенний Transactional в свой сервис. Что я мог сделать? – Franco
@monkeydeveloper Я не вижу диспетчера транзакций, настроенного в вашем контексте. Попробуйте добавить ' ' и его зависимости в 'components.xml '. Подробнее об этом [здесь] (http://static.springsource.org/spring/docs/3.0.x/reference/transaction.html) –
soulcheck