问题描述
项目中遇到这样一个问题:使用的第三方JAR包中有一个整包(javax.management)与JDK的javax.management包重复了,但是具体实现却是不一样的,运行的时候第三方JAR包里的类试图调用自己提供的javax.management包里的类,但是JDK也提供了javax.management包,所以虚拟机优先调用了自己的javax.management里的类,于是就出错了。请问这个问题要怎么解决?因为这个原因项目已经停滞好久了,希望看到的大侠给解答一下,不甚感激!项目实际情况是:我要在JDK1.6环境下监控WebLogic8,需要用到weblogic.jar,但是weblogic.jar提供了javax.management包,与JDK1.6提供的javax.management包冲突了,而且内部实现还不完全一样。 问题补充:lyy3323 写道
解决方案
我觉得你完全可以死心了,Oracle的官方document上写了只支持sun JDK1.4http://download.oracle.com/docs/cd/E13196_01/platform/suppconfigs/configs81/81_over/overview.html
解决方案二:
要监控各个版本的Weblogic,换JRockit好了,应该没有什么更好的解决办法啊
解决方案三:
我直接把这个也写给你好了 System.setProperty("jmx.serial.form", "1.0")
解决方案四:
个人觉得原因有2个可能一个是JDK1.5之后就集成了JMX1.2,成为了system library了,而WLS8的JMX只有1.0版本,所以匹配不到。你可以system.setProperty把jmx的版本设置成1.0看看应该能解决另外一个原因,其实还是JMX的问题,Bea的JDK和 SUN JDK中有一些JMX不匹配,换用Bea的你的问题肯定能解决,但建议用第一个,写行代码而已东西都是在改进,你如果用WLS9就没这个烦恼了,因为WLS9删除很多JDK1.5之后包含的重复类,比如你说的javax.management
解决方案五:
1. MyEclipse中启动做配置 在MyEclipse的首先项中,配置服务器,打开对应的weblogic配置,展开path,在prepend一栏中,将web工程lib下xxxxx.jar加入,点击确定,启动,ok. 2. 修改weblogic启动命令 好像是 set PRE_CLASSPATH=%DOMAIN_HOME%libantlr.jar。这个你可以去搜索一下 weblogic 的类加载顺序问题,
解决方案六:
使用时指定包名