2015-04-01 3 views
2

Я использую последние 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». Проблема заключается в том, что я получаю следующее исключение:Как загрузить 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?

ответ

1

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

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

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

Привет, я пытался, но янтарная смола (в реализации Ресина JPA 1.0) жалуется на '<упорство Xmlns =" ​​http://xmlns.jcp .org/xml/ns/persistence "> является неожиданным тегом верхнего уровня' persistence.xml. Это пространство имен JPA 2.1. Как вы от него избавились? (смола 4.0.43) – smallufo

+0

Используйте аннотации для JPA, она должна работать. Меня устраивает. – logixplayer