3

ローカルのデータベースにアクセスし、JBossAPサーバーでリモートEJBサービスを呼び出すプロジェクトを開発しています。

したがって、hibernateにはhibernate-release-4.1.5.Finalを使用し、リモートEJBサービスを呼び出すにはjbossall-client.jarを使用します。

ただし、jndiContext.lookup( "xxx")メソッドを実行すると、例外が発生し、メッセージは次のように表示されます。

Exception in thread "main" java.lang.NoSuchFieldError: TRACE
    at org.jboss.logging.Log4jLogger.translate(Log4jLogger.java:64)
    at org.jboss.logging.Log4jLogger.isEnabled(Log4jLogger.java:39)
    at org.jboss.logging.Logger.isTraceEnabled(Logger.java:98)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:623)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:590)
    at javax.naming.InitialContext.lookup(InitialContext.java:392)

Hibernateフレームワークのjboss-logging-3.1.0.GA.jarがjbossall-client.jarと競合することを確認しました。
このjarを除外すると、EJBは正常に機能しますが、休止状態の部分は機能しません。

この例外がjboss-logging-3.1.0.GA.jarのLog4Jとjbossall-client.jarの1つのバージョンの違いに起因するかどうかは好奇心が強いです。

私がプロジェクトに入れたjarファイルは次のとおりです。
1.antlr-2.7.7.jar
2.dom4j-1.6.1.jar
3.hibernate-commons-annotations-4.0.1.Final.jar
4.hibernate-core-4.1.5.Final.jar
5.hibernate- jpa-2.0-api-1.0.1.Final.jar
6.javassist-3.15.0-GA.jar
7.jboss-logging-3.1.0.GA.jar
8.jboss-transaction-api_1.1_spec-1.0.0 .Final.jar
9.jbossall-client.jar

JDK:jdk1.6.0_25

誰かが私に提案や解決策を教えてもらえますか?ご不明な点がございましたら、お気軽にお問い合わせください。

よろしくお願いします。

4

1 に答える 1

6

log4jの新しいバージョンを入手してみてください。Hibernate4のニーズ(私は思う)1.2.12以降。サーバーのlibディレクトリに配置する必要がある場合があります。それでも問題が解決しない場合は、代わりにHibernate3を使用する必要があります。

于 2012-08-20T06:31:31.637 に答える