martini应用搭建问题记录一--重复类载入
来源:互联网 发布:mysql update多张表 编辑:程序博客网 时间:2024/06/06 01:08
一。问题情况
昨天开始搭建一个应用matini,因为有文档参考,所以搭建还是比较快的,这个应用跑在apache+jboss组成的服务器上面,基本框架是shy3+spring+oracle组成;布置环境,编译代码,一切正常后,开始启动。。。,日志文件报了一个类错误,启动失败,如下:
2012-06-08 12:26:36,582 ERROR support.RegistryDirectory - [DUBBO] Failed to refer invoker for interface:interface com.ali.caesar.platform.common.esb.DubboCustomerInfoServiceProviderInterface,url:(hessian://10.20.143.205:27777/com.ali.caesar.platform.common.esb.DubboCustomerInfoServiceProviderInterface?anyhost=true&application=martini&check=false&dubbo=2.1.4&interface=com.ali.caesar.platform.common.esb.DubboCustomerInfoServiceProviderInterface&methods=queryMultiMemberInfoList,findBatchLatestCustomerInfo&pid=19199&revision=3.1.25&server=jetty×tamp=1339122204533&version=1.0.0)com.caucho.hessian.client.HessianProxy.<init>(Ljava/net/URL;Lcom/caucho/hessian/client/HessianProxyFactory;)V, dubbo version: 2.0.12, current host: 10.16.46.65
java.lang.NoSuchMethodError: com.caucho.hessian.client.HessianProxy.<init>(Ljava/net/URL;Lcom/caucho/hessian/client/HessianProxyFactory;)V
二。处理过程
看了下,应该是说初始化类过程中,有个类的方法没有找到;DubboCustomerInfoServiceProviderInterface这个类是DUBBO反射实例化的。
是不是dubbo类的提供方的方法有问题?查询了dubbo注册平台,类提供方正常,版本号也正常,而且出错不是提示没有调用方,那么应该是调用后初始化失败;
然后在eclipse里面使用类检索功能,查询出错的com.caucho.hessian.client.HessianProxy类,发现有两个不同的jar里面存在同名类;比较了下,其中一个类有两个初始化方法如下:
/**
* Package protected constructor for factory
*/
HessianProxy(HessianProxyFactory factory, URL url)
{
_factory = factory;
_url = url;
}
/**
* Protected constructor for subclassing
*/
protected HessianProxy(URL url, HessianProxyFactory factory)
{
_factory = factory;
_url = url;
}
而另一个只有第一个方法,再比照出错的提示没有找到的方法,基本可以确认就是由于同名不同类载入的问题,导致出错。
找到原因后,就把war包lib里面打包的类jar删除,重新启动jboss,可以看到出错消失了,应用启动成功~!
三。后续问题
我拉的martini是主干,清空二方库后重新打得包,拥有同名文件的jar包生成日期是一致的,换句话说,martini应用主干本身依赖关系里面就存在这种风险,怎么之前没有暴露出这个问题,线上环境也没有这种同名不同类载入的问题呢?我需要再跟进调查下。
- martini应用搭建问题记录一--重复类载入
- 去掉重复记录问题
- 重复记录问题
- 删除重复记录的问题
- 解决中记录重复问题
- 搭建网站问题记录
- java的类载入原理(一)
- 一句sql 删除 数据库重复记录
- django搭建网站记录一
- jboss 不能载入自定义类的问题
- Golang开发环境搭建(Notepad++、LiteIDE两种方式以及martini框架使用)
- MySQL问题记录(一)
- Xcode问题记录 一
- 问题记录一
- JS:问题记录一
- 解决数据库中记录重复问题
- 查询时去掉重复记录的问题
- 记录数据中重复数字问题
- hdu 1249 三角形
- 关于iPhone和iPad的图标
- Apache Derby logo Java数据库服务器 Apache Derby
- 地主AI算法实现
- 雅虎再谈WEB前端网站优化
- martini应用搭建问题记录一--重复类载入
- ecshop {insert name=”}的使用
- 获取表格记录ID值
- 浅析JavaScript原型设计模式
- 编辑记录时 绑定记录DATATABLE到页面控件
- jQuery选择器大全(48个代码片段+21幅图演示)
- c++虚函数的作用
- POJ 1964 City Game
- 女人什么情况下不宜吃西瓜