Ошибка создания фабрики менеджера сущностей JPA; JBoss, Hibernate и SQL Server - PullRequest
0 голосов
/ 26 марта 2012

Запуск JBoss 5.1 с Hibernate в качестве поставщика JPA. При поддержке SQL Server 2008.

При запуске сервера я получаю сообщение об ошибке java.lang.ClassCastException: org.hibernate.dialect.SQLServerDialect cannot be cast to org.hibernate.dialect.Dialect. Довольно четкое сообщение, но я сбит с толку относительно основной причины. У меня есть hibernate-core-3.5.1-Final.jar на пути к классам, и необходимые файлы классов присутствуют.

Эта настройка диалекта не давала ошибок в проекте, когда она использовалась как свойство, передаваемое Spring AnnotationSessionFactoryBean, но я пытаюсь реорганизовать кусок в прямой EJB / JPA. Для чего это стоит, вот мой конфиг постоянства:

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0">
<persistence-unit name="[my name here]">
    <jta-data-source>java:jdbc/[my name here]</jta-data-source>
    <properties>
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
        <property name="hibernate.cache.use_query_cache" value="true" />
        <property name="hibernate.cache.use_second_level_cache" value="true" />
        <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.EhCacheProvider" />
    </properties>
</persistence-unit>

Я ненавижу подобные вопросы «вот мой конфиг и моя трассировка стека», но я возился по этому вопросу в течение полутора часов и не смог придумать какие-либо новые идеи.

1 Ответ

1 голос
/ 26 марта 2012

ClassCastException вызвано наличием двух копий API javax.persistence в вашей системе. При работе на JBoss вы просто не должны упаковывать jar-файл персистентности в свое приложение. Удалите все файлы, связанные с постоянством, из вашего приложения, и исключение должно исчезнуть.

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