【发布时间】:2016-10-26 11:30:42
【问题描述】:
Websphere 8.5.5.5 的 WEB-INF/lib 中的 2 个 jar 具有相同的目录结构 org.json.* 。
json.jar 用JDK 1.6编译
用 JDK 1.7 编译的 commonlib.jar
我在一个环境中的 JVM 启动期间收到以下异常,而另一个环境具有相同的 jars 和相同的类路径,但它可以正常工作。由于出现 UnsupportedClassVersionError,WAS 正在运行 Java 1.6
6/23/16 15:59:32:091 CDT] 0000005e InjectionProc W CWNEN0047W:jmaki.xhp.XmlHttpProxyServlet 类的字段上的资源注释将被忽略。由于异常无法获取注释:java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=org/json/JSONObject,偏移量=6
当我专门将第二个jar添加到第二个环境的类路径中时会出现上述错误,否则它可以正常工作是不是由于类路径顺序?
class load: org.json.JSONException from: file:/hosting/configs/WebSphereD24/AppServer/installedApps/nodea/sear/swar/WEB-INF/lib/json.jar
class load: org.json.JSONObject$Null from: file:/hosting/configs/WebSphereD24/AppServer/installedApps/nodea/sear/swar/WEB-INF/lib/json.jar
WebSphere 如何决定从 .jar 加载 class=org/json/JSONException 的 jar。这个类存在于两个罐子中......它是如何从一个中的 json.jar 和另一个中的 common.jar 加载的。
【问题讨论】:
-
不,这是因为试图将 1.7 类加载到 1.6 JVM 中。这肯定很明显吗?
-
嗯,还有另一个与第一个相同的环境(服务器)。它也可以在 Java 1.6 上运行。并且具有相同的 jar 和类路径。但除非在上面的类路径中明确提及,否则它不会引发冲突。
-
所以有问题的 JAR 没有被加载。它仍然是一个不正确的情况,有明显的修复。
-
解决问题不是这里的问题。Websphere 如何决定 jar 从 .这个类存在于两个 jars 中......它是如何从一个中的 json.jar 和另一个中的 common.jar 加载的
-
如果“修复不是问题”,那么是问题是什么?
标签: java json jar websphere classpath