У меня есть DAO, который использует JPA с источником данных не-JTA и транзакциями RESOURCE_LOCAL. Все мои модульные тесты, которые выполняют DAO, работают отлично (данные вставляются и извлекаются из базы данных).
Однако при развертывании моего EJB на моем сервере Weblogic 10.3.3 я получаю следующее исключение:
Caused by: java.lang.IllegalArgumentException: Unknown entity bean class: class com.foo.bar.CatalogEntity, please verify that this class has been marked with the @Entity annotation.
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:576)
Мой файл persistence.xml (в WEB-INF / classes / META-INF):
<?xml version="1.0" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="cmf-awe-service" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>MyDataSource</non-jta-data-source>
<class>com.foo.bar.CatalogEntity</class>
<properties>
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.query-results-cache" value="false"/>
<property name="eclipselink.target-server" value="WebLogic_10" />
<property name="eclipselink.logging.level" value="FINEST" />
</properties>
</persistence-unit>
</persistence>
Я подтвердил, что класс CatalogEntity находится в каталоге WEB-INF / classes. Любые идеи о том, почему это работает в модульных тестах, но не при развертывании на сервере приложений?