2016-12-09 10 views
0

У меня есть IBM Websphere 8.5.5.10. и hibernate-jpa-2.0-api-1.0.0.Final.jar является баром по умолчанию. Однако я хочу использовать более новую версию -> hibernate-jpa-2. -api-1.0.0.Final.jar. Я установил «Классы, загруженные сначала локальным загрузчиком классов (родительский последний)» и «Одноклассный загрузчик для приложения». Несмотря на это, я получаю следующее сообщение об ошибке:Параметры загрузчика классов не применяются к Websphere 8

Caused by: java.lang.NoSuchMethodError: javax/persistence/Table.indexes()[Ljavax/persistence/Index; 
... 
Delegation Mode: PARENT_FIRST). 
at org.hibernate.cfg.annotations.EntityBinder.processComplementaryTableDefinitions(EntityBinder.java:973) ~[hibernate-core-4.3.11.Final.jar:4.3.11.Final] 
... 

Похоже, эта ошибка возникает из-за загрузки баночка старого/родителя первым. Также. обратите внимание, что режим делегирования PARENT_FIRST, хотя я определил другое. И я проверил много раз моего определение загрузчика, перезапуск приложения и даже сервер и всегда то же самое :(

Могут кто-нибудь помочь, пожалуйста?

+0

Где что из строки «Режим делегирования», которая обычно не входит в трассировку стека ... вы выгружаете класс ClassLoader.toString() для этого класса или что-то в этом роде ? – Jarid

+0

Нет, я не демпинг или что-то подобное. Websphere печатает это – Ivan

+0

А, хорошо ... можете ли вы вставить материал между исключением и точкой сообщения? Это нечетное соответствие для этой точки в сообщении об исключении, если JDK не форматирует это немного странно (или Hibernate делает свое собственное форматирование). – Jarid

ответ

2

Это уже обсуждались в нескольких постах, проверить this. Вы не может использует JPA 2.1 с WAS 8.5.5.x в управляемом контейнером образом, так как он поддерживает только 2.0. Вам либо нужно перейти на WAS 9.0, либо перейти на WebSphere Liberty, либо использовать JPA в управляемом приложениями образом.