我正在开发一个项目,它访问本地数据库,然后调用JBoss AP服务器中的远程EJB服务。
因此,对于hibernate,我使用hibernate-release-4.1.5 for,对于调用远程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将成功工作,但hibernate部分将不会工作。
我很好奇这个异常是不是因为jboss-logging-3.1.0.GA.jar的Log4J和jbossall-client.jar的版本不同造成的。
下面列出了我放入项目中的jars。
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
有没有人能给我一个建议或解决方案?如果有任何需要的信息,请随时告诉我。
提前感谢您的帮助。
发布于 2012-08-20 14:31:32
试着抓取newer version of log4j,hibernate 4需要(我想) 1.2.12或更高版本。您可能需要将其放在服务器的lib目录中。如果这不起作用,你可能需要使用hibernate 3来代替。
https://stackoverflow.com/questions/12032132
复制相似问题