Как загрузить Java EE 7 в Resin 4.0.42 без использования класса Javaee-16.jar по умолчанию, загруженного по умолчанию

Я использую последнюю версию Spring Framework 4.1.5 и Hibernate-Entity-Manager 4.3.8 вместе с Javax.Persistence-api 1.0.2, все с JPA 2.1. Эта спецификация основана на Java EE 7. Я заметил, что в Resin 4.0.42 он использует "javaee-16.jar". Проблема в том, что я получаю следующее исключение:

Caused by: java.lang.NoSuchMethodError: javax.persistence.Table.indexes()   
[Ljavax/persistence/Index; 
    at 
    org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973) 
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:824) 
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3845) 


Method javax.persistence.Table.indexes() only exists in Java EE 7     
(Javax.Persistence-api 1.0.2) as a JPA 2.1 spec and NOT in Java EE 6 as a 
JPA  2.0 spec. 

Проблема в том, что мой код основан на JPA 2.1. Есть ли в любом случае я могу загрузить

<dependency> 
<groupId>javax</groupId> 
<artifactId>javaee-api</artifactId> 
<version>7.0</version> 
</dependency> 

даже после того, как Ресин загрузил: javaee-16.jar первый?

2 ответа

Работал там, где я сначала загружаю детей, а не наоборот. Ресин загружал Родителя первым. Я заметил, что у других была такая же проблема с реализацией JPA 2.1 на сервере приложений, который реализует только JPA 2.0. Ключевым моментом является то, что каждый сервер приложений сначала имеет свой собственный особый способ настройки дочерних библиотек (или библиотек вашего приложения).

В моем случае в Resin.xml добавьте следующее:

<class-loader>
    <servlet-hack/>
</class-loader>

У меня аналогичная ошибка из-за того, что у смолы есть jpa 2.0, а приложение хочет jpa 2.1

исправлено добавлением библиотеки в путь к классам смолы в конфигурационном файле смолы

      <server-default>
   <jvm-classpath>path/to/lib/hibernate-jpa-2.1-api-1.0.2.Final.jar</jvm-classpath>
   ....
<server-default>
Другие вопросы по тегам