lbom

小江西

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  18 随笔 :: 21 文章 :: 69 评论 :: 0 Trackbacks
        在一周前,项目组碰到一个大问题:NTKO Office Activex控件在上传文件及提交页面信息时,其提交的页面元素输入中文值变成了无法识别的、也不属于已知编码中的任何一种编码格式的乱码;但在NTKO Office Activex控件包装项目组提供的的测试项目中,此问题并未出现,因此判断是项目兼容性所导致。
       在项目组功能开发员和控件包装组成员进行近一周的努力后,也未解决此问题。最后,此问题交由我来做最后分析和处理。
       经过三天时间对问题项目的分拆、组装、分析、测试后,终于找到问题所出,现将此过程进行记录,以备参考:
        1)以控件包装组测试项目为基准,建立项目级测试项目,并保证在此测试项目中不存在兼容性问题;
        2)检测web.xml:将问题项目的web.xml代替测试项目中的web.xml,未出现兼容性问题,从而排除因web.xml的差异而导致的兼容性;
        3)测试问题项目中的项目依赖:将问题项目的项目依赖关系复制至测试项目中,发现兼容性问题未出现,从而排除项目依赖导致的兼容性;
        4)检测支持包:将问题项目中的支持包(各jar)代替测试项目中的支持包,未出现兼容性问题,从而排除因支持包的差异导致的兼容性,也就排除了各servers,servlet,listener等导致的兼容性问题;
        5)检测js支撑:将问题项目中的所有相关js文件取出,代替测试项目中的相关js文件,未出现兼容性问题,从而排除因js支持文件的差异导致的兼容性;
        6)检测css支撑:将问题项目中的所有相关css文件取出,代替测试项目中的相关js文件,未出现兼容性问题,从而排除因css支持文件的差异导致的兼容性;
        7)检测tld,xml文件:将问题项目中的tld,xml文件取出,代替测试项目中的tld,xml文件,未出现兼容性问题,从而排除因tld,xml的差异导致的兼容性;
        8)至此,正常解决的兼容性措施都已用完,还是未找到问题所出!如何办?
        9)开始使用非正常手段进行排查:
            <1>对比检查.project和.classes未发现异常,从而排除基本项目配置导致的兼容性;
            <2>将问题项目的web项目设置文件(.settings)代替测试项目的web项目设置文件(.settings),问题出现了!继续排队分析,发现问题出现在文件org.eclipse.wst.common.component中,
问题项目的设置为:
                                    <?xml version="1.0" encoding="UTF-8"?>
                                    <project-modules id="moduleCoreId" project-version="1.5.0">
                                       <wb-module deploy-name="XXX_IC">
                                       <wb-resource deploy-path="/" source-path="/web"/>
                                       <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                       <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                       <property name="java-output-path" value="build/classes"/>
                                       <property name="context-root" value="XXX_IC"/>
                                   </wb-module>
                                   </project-modules>
测试项目设置为:
                                    <?xml version="1.0" encoding="UTF-8"?>
                                    <project-modules id="moduleCoreId" project-version="1.5.0">
                                       <wb-module deploy-name="test">
                                       <wb-resource deploy-path="/" source-path="/web"/>
                                       <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
                                       <wb-resource deploy-path="/WEB-INF/classes" source-path="/test"/>
                                       <property name="java-output-path" value="build/classes"/>
                                       <property name="context-root" value="test"/>
                                   </wb-module>
                                   </project-modules>
且无论如何修改"XXX_IC",都会导致兼容性出现,最后没办法,将下划线"_"去掉,奇迹出现了。
        原来NTKO Office Activex控件在提交数据时,是通过scoket模拟Http进行文件和页面元素的提供,如提交的页URL完整路径中包含了"_"等字符时,将导致无法识别,从而导致兼容性的产生。
posted on 2009-05-15 22:13 lbom 阅读(1501) 评论(2)  编辑  收藏

评论

# re: Web项目兼容性问题调试与分析之道 2009-05-16 23:18 jinfeng_wang
原来NTKO Office Activex控件在提交数据时,是通过scoket模拟Http进行文件和页面元素的提供,如提交的页URL完整路径中包含了"_"等字符时,将导致无法识别,从而导致兼容性的产生。

====
why? 你是说这个Activex的bug?  回复  更多评论
  

# re: Web项目兼容性问题调试与分析之道 2009-05-18 09:44 lbom
@jinfeng_wang
难道说这是应用系统的Bug吗?是不是还有其它的原因呢?如果有,请指教!谢谢  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问