2012-03-26 6 views
0

Ausführen von JBoss 5.1 mit Hibernate als JPA-Anbieter. Unterstützt mit SQL Server 2008.JPA-Entitätsmanager-Factory-Erstellung fehlgeschlagen; JBoss, Hibernate und SQL Server

Ich erhalte einen Fehler beim Serverstart, der java.lang.ClassCastException: org.hibernate.dialect.SQLServerDialect cannot be cast to org.hibernate.dialect.Dialect ist. Ziemlich klare Nachricht, aber ich bin verblüfft über die zugrunde liegende Ursache. Ich habe Hibernate-Core-3.5.1-Final.jar auf dem Klassenpfad, und die erforderlichen Klassendateien sind vorhanden.

Diese Dialekteinstellung gab keinen Fehler in dem Projekt, wenn es als eine Eigenschaft verwendet wurde, die zu einem Spring AnnotationSessionFactoryBean übergeben wird, aber ich versuche, ein Stück zu einem geraden EJB/JPA umzuwandeln. Für das, was es wert ist, hier ist meine Ausdauer config:

<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> 

ich diese Art von Hass „hier sind meine config und meine Stacktrace“ Fragen, aber ich habe um eine Stunde auf dem schon Stossen und einem halb und ich habe keine neuen Ideen.

Antwort

1

Die ClassCastException wird durch das Vorhandensein von zwei Kopien der javax.persistence-APIs in Ihrem System verursacht. Wenn Sie JBoss verwenden, sollten Sie das Persistenz-JAR nicht einfach in Ihrer Anwendung packen. Entfernen Sie alle Persistenz-bezogenen Jar's aus Ihrer Anwendung und die Ausnahme sollte verschwinden.

+0

Ist es möglich, die Persistenz JAR-Datei in Jboss statt in der WAR-Datei zu entfernen? Vielleicht sogar die Persistenzdienste komplett deaktivieren? – ziggy