Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как использовать javax/persistence/spi/PersistenceUnitInfo.getValidationMode() с WAS 6.1

Автор вопроса: VickyОтветов: 1

Я использую JPA 2.0 с Spring и гибернацией в своем проекте.

Однако среда выполнения - WAS 6.1.

Сборка проходит нормально.

Однако во время развертывания приложения я получаю следующую ошибку:

com.ibm.ws.exception.RuntimeError: java.lang.RuntimeException: java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;

При поиске класса PersistenceUnitInfo с помощью ctrl + shift + T я обнаружил, что он находится в следующих банках:

\IBM\SDP\runtimes\base_v61\lib\j2ee.jar

и

\WEB-INF\lib\hibernate-jpa-2.0-api-1.0.1.Final

Я извлек вышеуказанный класс из обоих JARS и декомпилировал их, используя JAD для сравнения.

Я обнаружил, что метод getValidationMode() отсутствует в j2ee.jar, но присутствует в банке hibernate-jpa.

Это причина ошибки, которую я получаю??? Как это решить?? Как я могу сказать веб-сфере искать класс в банке гибернации, а не в библиотеке времени выполнения сервера ???

hibernatewebspherejpa

Ответы

Ответ 1 · рейтинг 2 · MaDa

Вы не можете использовать JPA 2.0 с Websphere 6.1, что бы вы ни делали. Как вы заметили, он довольно глубоко встроен во внутренности WAS. У вас есть два варианта:

  1. Перейдите на WAS 7.0 с соответствующим пакетом функций (дополнительная информация в моем другом ответе).
  2. Понизьте Hibernate до версии 3.3.2 GA с помощью JPA 1.0.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы