Проблемы с постоянством банок - PullRequest
1 голос
/ 22 июля 2010

Я борюсь с JBOss, и я застрял в проблеме, которая кажется тривиальной, чтобы решить, но оказывается, что я не могу.Когда я пытаюсь развернуть простое веб-приложение на Java, я сталкиваюсь с исключением:

org.hibernate.ejb.HibernatePersistence cannot be cast to avax.persistence.spi.PersistenceProvider

Я знаю, что это проблема с наличием более одного файла persistence.jar.Так что в моём помете я сделал что-то подобное:

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>3.4.0.GA</version>
            <exclusions>
                <exclusion>
                    <groupId>org.hibernate</groupId>
                    <artifactId>ejb3-persistence</artifactId>
                </exclusion>
</dependency>

Но мне не повезло.Я все еще получаю ошибку.Может ли кто-нибудь помочь мне решить эту задачу?

Агата

1 Ответ

0 голосов
/ 23 июля 2010

Похоже, вы хотите упаковать свою собственную версию Hibernate в ваше приложение.Это возможно, но вам придется настроить область видимости загрузчика классов для своего приложения.From ClassLoadingConfiguration :

Изоляция с переопределением серверных классов

Используйте следующие конструкции для включения загрузки классов области действия с классами развертывания, перекрывающими классы сервера.

...

Для jboss-web.xml:

<jboss-web>
   <class-loading java2ClassLoadingCompliance="false">
      <loader-repository>
         com.example:archive=unique-archive-name
         <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
      </loader-repository>
   </class-loading>
 ...

Другими словами, либо включите все библиотеки Hibernate и отключите делегирование загрузчика родительского класса, либо исключите их все ииспользуйте один из JBoss.

См. также

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...