连接JMX的服务器在春天抛出异常,问题,怎么解决

连接JMX的服务器在春天抛出异常,问题,怎么解决,第1张

前一阶段一直做WebSphere61服务器监控研究,网上的资料不多,也不全,自己翻译加领悟,终于实现了全部的功能,下来就分享一下我的成果。
1问题的突破点PerfServletAppear
我在WebSphere根目录AppServer\installableApps里找到了这个程序,部署到WebSphere服务器上,发现它可以获得服务器的所有监控数据。这对我来说很有用,因为我还不知道WebSphere有哪些组件有哪些指标可以监控。我用jd-gui这个java反编译工具将这个程序反编译过来,修改了反编译产生的错误,并添加了所需的jar包,它就可以部署到我的tomcat并监控WebSphere了。
使用Search and Replace工具(它可以搜索jar)在WebSphere安装目录下找到了所需的jar包comibmwsadminclient_610jar、comibmwssecuritycrypto_610jar、ibmpkcsjar、ws_runtimejar、servlet-apijar。要注意comibmwsadminclient_610jar和ws_runtimejar两个jar包中都有javaxservlet的东西,这和tomcat的common\lib中的servlet-apijar是冲突的,必须用winrar打开这两个jar包,手工删除掉javax文件夹,否则这两个jar包加载不了!
这几个jar包是必须的(找了好久!最后还是通过在程序中添加SystemsetProperty("javaxnetdebug", "ssl");这句话才调试出了错误原因),因为正常情况下WebSphere服务器安装的时候都添加了安全性,也就是说登录console端是需要输入密码的。所以我们使用JMX连接WebSphere的时候就要接受WebSphere的认证。
2使用SSL soap连接方式
为了搞懂这种连接方式如何运作,花费了我很大的工作量。最终在某贴吧上找到了篇神贴,成功导入了证书(参考附件《websphere61证书导入rar》)。然后就是修改PerfServletApp的AdminClient的获取方法了,因为它使用的是AdminServiceFactorygetAdminService()直接从服务器上获得客户端的办法,而我的目标是在我的tomcat上部署,此方法显然不行。下面贴出我的完整连接方法:
public static AdminClient createConncetion() {
// SystemsetProperty("javaxnetdebug", "ssl");


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10857025.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存