监控WebLogic9/10的项目部署到Tomcat报[Unsupported protocol: t3]异常的解决办法

来源:互联网 发布:python的发展趋势 编辑:程序博客网 时间:2024/05/17 08:50

使用JMX监控WebLogic 9.x、10.x时要用到WebLogic提供的JAR包:

  ◆  9.x用到wlclient.jar和wljmxclient.jar

  ◆  10.x在JDK6下用到wlfullclient.jar、JDK5下用到wlfullclient5.jar(用 WebLogic JarBuilder Tool生成)

以下只针对wlfullclient.jar,也就是JDK6下的WebLogic 10.x。

错误现象
我们会通过这种方式获取和MBean Server的连接:
-----------------------------------------------------------------------
JMXConnector connector = JMXConnectorFactory.connect(serviceURL, h);
-----------------------------------------------------------------------

但是项目在Eclipse下通过Java程序调用没有任何问题,但作为Web应用部署到Tocmat就出问题了,会报这样的异常:
-----------------------------------------------------------------------
Unsupported protocol: t3
-----------------------------------------------------------------------
你是不是也发现了这个问题?

原因分析
刚发现这个问题是很是诧异,想不通,后来在老外的一个论坛上找到类似问题。
-----------------------------------------------------------------------------------------------
原来, JMXConnector接口是在JDK5/JDK6的rt.jar里面,而具体实现类是在wlfullclient.jar里面,问题就出在这里。rt.jar是由系统类加载器加载的, wlfullclient.jar如果放在WEB-INFO/lib目录下,就不是由系统类加载器加载,而是由Tomcat自定义的每个Web应用独有的WebappClassLoader加载了。所以我们只要把wlfullclient.jar放到Tomcat安装目录下的lib目录下,这样 wlfullclient.jar跟rt.jar就都是由系统类加载器加载了,所以问题就不存在了。

-----------------------------------------------------------------------------------------------

解决方案
解决方法很简单: 将wlfullclient.jar放到Tomcat安装目录下的lib目录下即可。