2010-04-06 13 views
7

Hibernate 3.5-Final est enfin là et il offre le support JPA2 très attendu, entre autres caractéristiques. Je travaille sur un projet (basé sur EJB3) en utilisant JBoss 5.1.0.GA et Hibernate 3.3, mais je voulais profiter du JPA2 et essayer de passer à Hibernate 3.5. Ce que j'ai fait était assez simple et standard - je mets simplement tous les fichiers hibernate 3.5 dans le dossier server/configuration (default, all, etc)/lib - de cette façon ils ont priorité sur les artefacts d'hibernation livrés avec JBoss. Il semble cependant que les navires JBoss avec des bibliothèques qui dépendent de la part de la mise en œuvre de JPA1 de la mise en veille prolongée 3.3, parce que je commencé à avoir des erreurs sur les méthodes abstraites inappliquées et des trucs comme ça sur Deploy:Hibernate 3.5-Final dans JBoss 5.1.0.GA

23:21:26,792 WARN [Ejb3Configuration] Persistence provider caller does not implement the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null. 
23:21:26,792 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=kernel-ear-3.3.0-SNAPSHOT.ear/config-persistence.jar#ConfigurationPersistenceUnit state=Create 
java.lang.AbstractMethodError: org.jboss.jpa.deployment.PersistenceUnitInfoImpl.getValidationMode()Ljavax/persistence/ValidationMode; 
    at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:613) 
    at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72) 
    at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:301) 
    at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) 

Peut-être que je devrais utiliser un persistance différente fournie? À l'heure actuelle, il est:

org.hibernate.ejb.HibernatePersistence

Je regardais autour du filet et n'a pas trouvé les chemins de mise à jour documentée. Il y avait même une question sans réponse ici dans le débordement de pile sur le sujet.

Des idées, des suggestions? Merci d'avance pour votre aide.

+0

La mise à niveau d'Hibernate dans JBossAS est rarement facile, comme vous l'avez découvert. Les interdépendances sont trop étroites pour toutes les configurations JBoss, à l'exception des plus triviales. – skaffman

+0

Salut, avez-vous pu résoudre ce problème? Je suis après avoir fait quelque chose de même et face à beaucoup de difficultés. – adi

+0

Essayez d'utiliser un nom différent pour votre fichier persistence.xml, comme foo-persistence.xml –

Répondre

6

Il semble bien que les navires JBoss avec des bibliothèques qui dépendent de la part de la mise en œuvre de JPA1 de la mise en veille prolongée 3,3

Oui, il ne (voir this old mail pour avoir une idée) et je ne pense pas que votre approche actuelle est possible. Ma compréhension est que l'intégration JPA 2 était prévue pour JBoss 5.2 mais il semble qu'ils ont décidé d'ignorer cette branche pour aller directement à JBoss 6.x.

+0

Oui, je suis au courant du plan pour inclure JPA2 dans JBoss 5.2 et ensuite la décision d'aller directement pour JBoss 6. J'espérais, cependant, qu'ils fourniraient au moins un chemin de mise à niveau pour les utilisateurs JBoss 5.1 car il est peu probable que beaucoup d'entre eux adoptera 6.x très tôt. Merci d'avoir répondu. –

+0

J'étais en train de faire le même exercice et j'étais capable d'emballer tous les jarres dépendants de 3.5.x à mon oreille, mais il y avait une erreur d'analyse du fichier persistence.xml. Il est impossible de remplacer les dépendances du dossier jboss.home/commons/lib – Joe

0

J'ai aussi ajouté quelques instructions sur le lien ci-dessus qui a fonctionné pour moi.