UnsupportedClassVersionError仅在JBoss 5.1中出现

时间:2011-02-07 13:54:14

标签: java jboss classloader java-6

我的应用程序包含第三方jar(com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar) 这是用Java6编译的。我设法在运行Java5的Tomcat 5.5上使用它,但当我尝试在JBoss 5.1上部署相同的应用程序时 - 我收到错误:

  

[org.jboss.detailed.classloader.ClassLoaderManager]   (主要)加载期间出现意外错误   的:testdata.SomeAnnotation   因为java.lang.UnsupportedClassVersionError:   .class文件中的版本号错误

我意识到这不仅发生在我身上。 as described here

我的问题:
1)为什么可以在网络服务器如tomcat中使用这个jar但它仍然困扰Jboss 5.1?
2)为什么Jboss类加载器加载应用程序的Jweaver实现用于加载它的框架,它不使用Jboss aspectJ实现。也许我应该将其类加载配置为 parent-first ,它会解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

Java向后兼容,(Java 5.0 jar可以在Java 6上运行)但不能向前兼容(Java 5 jar不能在Java 5.0上使用)

您需要获取为Java 5.0编译的第三方Jar的副本,或者将Java版本升级到版本6或更高版本。

答案 1 :(得分:0)

有时,我们已经看到学生HSG修改了他们使用的jdk,为此重新配置了他们的环境,并且这种异常仍在继续发生。这可能会导致相当大的混淆,特别是如果他们从jdk1.6切换到jdk1.5。几乎总是,罪魁祸首是一个或几个其他版本的jboss正在运行,所有传入的请求都调用其中一个(使用较新的jar)。我们总是检查哪些应用程序正在运行并杀死/关闭所有其他版本的jboss。