我的应用程序包含第三方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 ,它会解决这个问题吗?
答案 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。