2012-02-16 8 views
1

エンタープライズアプリケーションでHibernateのバージョン4.0.1を使用する必要があります。 EARはJBoss 6.0コンテナにデプロイされます。JBoss 6.0でHibernate 4.0.1を使用する

耳ファイルには、次のhibernateのjarファイルが含まれています

Upgrade Hibernate version in JBOSSによると、私は、カスタムfollwingのjboss-app.xmlとJBoss-classloading.xml

<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD J2EE Application 1.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd"> 
<jboss-app> 
    <loader-repository> 
    com.acme.sample:archive=Sample 
    <loader-repository-config>java2ParentDelegation=false</loader-repository-config> 
    </loader-repository> 
</jboss-app> 


<?xml version="1.0" encoding="UTF-8"?> 
<classloading xmlns="urn:jboss:classloading:1.0" 
    domain="sample.ear" 
    export-all="NON_EMPTY" 
    import-all="true" 
    parent-first="false"> 
</classloading> 
を使用してクラスローディング設定しようとしました
hibernate-commons-annotations-4.0.1.Final.jar 
hibernate-core-4.0.1.Final.jar 
hibernate-entitymanager-4.0.1.Final.jar 
hibernate-envers-4.0.1.Final.jar 
hibernate-envers-4.0.1.Final.jar 
hibernate-envers-4.0.1.Final.jar 
hibernate-search-analyzers-4.0.0.Final.jar 
hibernate-search-engine-4.0.0.Final.jar 
hibernate-search-engine-4.0.0.Final.jar 
hibernate-validator-4.2.0.Final.jar 

JBoss 6 Containerを起動すると、ログファイルに次の行が表示されます。

09:49:55,238 INFO [org.hibernate.annotations.common.Version] HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 
09:49:55,265 INFO [org.hibernate.Version] HHH000412: Hibernate Core {4.0.1.Final} 

Hibernate 4.0.1が検出されたかのように見えます。しかし、次の例外が発生します。

09:49:55,388 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=sample-SNAPSHOT.ear/lib/persistence_impl-0.0.21-SNAPSHOT.jar#sample state=Create: java.lang.ClassCastException: org.jboss.as.jpa.scanner.HackTLScanner cannot be cast to org.hibernate.ejb.packaging.Scanner 
at org.hibernate.ejb.Ejb3Configuration.buildScanner(Ejb3Configuration.java:415) [:3.6.0.Final] 
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:582) [:3.6.0.Final] 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:72) [:3.6.0.Final] 
at org.jboss.jpa.builder.DefaultCEMFBuilder.build(DefaultCEMFBuilder.java:47) [:1.0.2-alpha-3] 
at org.jboss.as.jpa.scanner.HackCEMFBuilder.build(HackCEMFBuilder.java:49) [:6.0.0.Final] 
at org.jboss.jpa.deployment.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:275) [:1.0.2-alpha-3] 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26] 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [:1.6.0_26] 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [:1.6.0_26] 
at java.lang.reflect.Method.invoke(Method.java:597) [:1.6.0_26] 
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:60) [jboss-reflect.jar:2.2.0.GA] 
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:168) [jboss-reflect.jar:2.2.0.GA] 
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-reflect.jar:2.2.0.GA] 
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:257) [jboss-kernel.jar:2.2.0.GA] 
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-kernel.jar:2.2.0.GA] 
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:125) [jboss-kernel.jar:2.2.0.GA] 
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72) [jboss-kernel.jar:2.2.0.GA] 

例外スタックトレースでは、休止状態のバージョン3.6.0.Finalが記述されています。コンテナがJBossに同梱されているhibernateのバージョンを使用してJPA永続ユニットを作成しようとしているかのようです。

JBossがEARファイルにパッケージ化されているHibernateバージョンを使用するように、私が間違っていることや、カスタムクラスローディングを設定する方法についてのヒントを教えてください。

+0

こんにちは、これに対する解決策はありましたか?私はここで同じ問題を抱えています。そして、どんなヒントも非常に高く評価されます。 – Petter

+0

こんにちはペッター、これまで何ら解決策が見つかりませんでした – woelfle

答えて

0

私はこの問題のための回避策を行っているし、それが動作する...

私の耳の構造は、この--->

accountEAR.ear 
| 
|--lib 
    |<all jars for hibernate 4.0.1 and mysql jdbc jar> 
| 
|--META-INF 
    | application.xml 
    | jboss-app.xml 
    | jboss-classloading.xml 
    | mysql-ds.xml 
| 
|-- account_persistence.jar 

JBossバージョンは6.1とMySQLバージョン5.1

あるようです

のjboss-app.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jboss-app PUBLIC "-//JBoss//DTD Java EE Application 5.0//EN" "http://www.jboss.org/j2ee/dtd/jboss-app_5_0.dtd" > 
<jboss-app> 
    <loader-repository> 
     com.accountEAR:loader=accountEAR 
     <loader-repository-config> 
      java2ParentDelegation=false 
     </loader-repository-config> 
    </loader-repository> 
    <library-directory>lib</library-directory> 
</jboss-app> 

のjboss-classloading.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<classloading 
    xmlns="urn:jboss:classloading:1.0" 
    export-all="NON_EMPTY" 
    import-all="true" 
    parent-first="false"/> 
関連する問題