`
从此醉
  • 浏览: 1040218 次
  • 性别: Icon_minigender_1
  • 来自: US
社区版块
存档分类
最新评论

从解决 websphere 7.0.0.9 中 Parameter type in setter method does not corresponds to predefined 问题中明白的道理

 
阅读更多

以前一直没有把版本兼容的事情当回事,最近的一个bug让我彻底的相信了这个问题的重要性.....

当时系统中需要添加一个新的功能,这个功能的模型在系统的已有模块中存在,于是按照已经存在的模型做了下来,进展很顺利,很快就开发完毕,本地测试也很顺利,本地的server是jboss 5.0,于是满怀信心的将这个模块进行check in,可是正式环境的运行结果让我的自信荡然无存,一到那个模块就会报

[2/27/12 15:05:01:611 GMT+08:00] 00000058 SystemErr     R java.beans.IntrospectionException: Parameter type in setter method does not corresponds to predefined.
[2/27/12 15:05:01:612 GMT+08:00] 00000058 SystemErr     R     at java.beans.PropertyDescriptor.setWriteMethod(Unknown Source)
[2/27/12 15:05:01:612 GMT+08:00] 00000058 SystemErr     R     at java.beans.PropertyDescriptor.<init>(Unknown Source)
[2/27/12 15:05:01:612 GMT+08:00] 00000058 SystemErr     R     at java.beans.StandardBeanInfo.introspectProperties(Unknown Source)
[2/27/12 15:05:01:613 GMT+08:00] 00000058 SystemErr     R     at java.beans.StandardBeanInfo.<init>(Unknown Source)
[2/27/12 15:05:01:613 GMT+08:00] 00000058 SystemErr     R     at java.beans.Introspector.getBeanInfoImpl(Unknown Source)
[2/27/12 15:05:01:614 GMT+08:00] 00000058 SystemErr     R     at java.beans.Introspector.getBeanInfoImplAndInit(Unknown Source)
[2/27/12 15:05:01:614 GMT+08:00] 00000058 SystemErr     R     at java.beans.Introspector.getBeanInfo(Unknown Source)
[2/27/12 15:05:01:615 GMT+08:00] 00000058 SystemErr     R     at org.apache.commons.jxpath.JXPathBasicBeanInfo.getPropertyDescriptors(JXPathBasicBeanInfo.java:113)
[2/27/12 15:05:01:615 GMT+08:00] 00000058 SystemErr     R     at org.apache.commons.jxpath.JXPathBasicBeanInfo.toString(JXPathBasicBeanInfo.java:165)

异常,开始以为是代码的规范或者是某个set/get 的方法签名写错了,于是按照javabean的规范,对class的方法名称反复的检查了一遍,可结果还是一样的,因为这个模块用的技术是jxpath,所以又盯着jxpath的源码琢磨了大半天,还是没有看出什么名堂,是在没辙了,baidu+google全部用上了,可是可以参考的信息非常的少,难道诸位前辈就从来没有碰到过这个问题吗? 后来用用了google.de 去搜索相关的问题,这次页面中出现了大量关于这个问题的link,挨着打开看呗,第一个链接中隐隐约约的提到了这个问题的解决方法,大概就是和websphere的版本问题,可是因为那个是英文的页面,所以没有太多的去关注这个页面,于是看第二个,第三个.....看上去都不是很有用,就这样,这个搞搞,那个弄弄,大半天过去了,还是没有一点进展,还是找找前辈帮解决吧,当时我们的架构师不在,于是找来二当家,三当家的......能找的人都找了,他们的思路基本和我一样.结果还是一样的.这个问题纠缠了我们两天,因为这个问题影响到了项目的发布日期,最后我们的架构师休假归来,他上来没有去急着百度,而是一遍一遍的看着错误提示,开始他也以为是和bean的规范有关系,尝试完了之后,还是没有效果,然手他又通过版本工具仔细的核对这次修改的内容,查看了一会之后肯定的说了一句这不会有问题的,最后他也用上了杀手锏,google.XX ,他搜索的结果和我搜索的结果几乎差不多,第一个link就是我刚才查看过的,他仔细的看着页面里的每每一句话,里面有个关键词是jdk ...sr2,于是他这时到ibm的官网去查找所有和websphere以及jdk的版本对应信息(http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27005002&nbsp;) 在这里找到了我们应用的版本,接着通过websphere的启动日志文件查处了我们使用的jdk版本,一对照,好像真的有问题,我们使用的版本比官方推荐的要低好几个版本,这时的我隐约的感到了胜利的意思曙光,接下来就是去想在最新版本的补丁,然后重启,再次测试我的模块,那象征着胜利的进度条呈现在我眼前...娘的 真的是这个问题


或许这就是高手和一般水平选手之间的差别,也许高手并不是因为他懂什么高深的框架,也并不是因为他的思路有多么的开阔,而是高手有着那常人不具备的明锐观察能力,具备那种能够从旁人看起来不起眼的线索中找到有用的信息的能力..........................

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics