GWT с JPA
В моей рабочей области eclipse есть два проекта, назовем их:
-JPAProject -GWTProject
JPAProject содержит материал конфигурации JPA (persistence.xml), классы сущностей и тд).GWTProject - это примерный проект GWT (взят из официального руководства GWT).
Оба проекта работают в одиночку.То есть я могу создать EMF (EntityManagerFactory) в JPAProject и получать объекты из базы данных.GWTProject тоже работает нормально, я могу запустить его, заполнить текст поля в браузере и получить ответ.
Моя цель - вызвать JPAProject из GWTProject для получения сущностей.Но проблема в том, что при вызове DAO я получаю следующее исключение:
[WARN] Server class 'com.emergit.service.dao.profile.ProfileDaoService' could not be found in the web app, but was found on the system classpath
[WARN] Adding classpath entry 'file:/home/maliniak/workspace/emergit/build/classes/' to the web app classpath for this session
[WARN] /gwttest/greet
javax.persistence.PersistenceException: No Persistence provider for EntityManager named emergitPU
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
at com.emergit.service.dao.profile.JpaProfileDaoService.<init>(JpaProfileDaoService.java:19)
at pl.maliniak.server.GreetingServiceImpl.<init>(GreetingServiceImpl.java:21)
...
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
[ERROR] 500 - POST /gwttest/greet (127.0.0.1) 3812 bytes
Я предполагаю, что предупреждения в начале могут быть опущены на данный момент.
У вас есть идеи?Я предполагаю, что упускаю какой-то основной момент.Все советы приветствуются.
Обновление: Мой поставщик персистентности четко определен, проект JPA работает сам по себе.
Я думаю, это тоже проблема, связанная с classpath.При запуске проекта GWT в WEB-INF/lib
есть только gwt-servlet.jar
.
Считаете ли вы, что создание собственного файла Ant для создания всего объекта является единственным решением (например, создать jar-файл из проекта JPA и скопировать его в WEB-INF/lib
)?Или есть какое-либо решение Eclipse, чтобы я мог правильно установить свойства проекта GWT, чтобы проект GWT знал, что он включает persistence.xml
файл?
Обновление: ОК, я получил его на работу.Я пытался поместить persitence.xml везде, где это было возможно, в war / WEB-INF, но постоянно получал сообщение об ошибке «отсутствует поставщик постоянства».Оказалось, что речь не идет о persistence.xml.Я не скопировал jar eclipselink в WEB-INF / lib, поэтому не смог найти класс провайдера, определенный в persistence.xml.Копирование всех банок сработало.
Большое спасибо, Паскаль.