WebSphere不死,程序灾难未平

目标:将现址平台WAS5.1 LINUX3.0 JDK1.4平台升迁至新址平台WAS7.0 LINUX6.7 JDK1.6

由于本地程序不完整,只能使用服务器上的WAR包,无法用JDK1.6重新编译,迁移遇到了麻烦...

测试方案如下:

1.将WAS5.1导出的WAR包发布至WAS7.0,测试不通过、调试未通;
2.将WAS5.1导出的WAR包发布至WAS7.0,再用TAR下来的整个ZIP包覆盖此WAR,以保证程序文件的完整性,测试不通过、调试未通;
3.改本地环境JDK1.4为1.6,使用本地程序,再进行测试,TOMCAT5通过,打成WAR包发布至WAS7.0,测试不通过、调试未通;
4.本地TOMCAT6.0,使用节目生产导出WAR包和TAR包整合后的包,测试未通过,调试通过。
5.使用节目生产导出WAR包和TAR包整合后的包在WAS7上测试,一系列问题...

是否存在可预见性未知问题:暂未知

理论上来讲,高版本JDK是向下兼容的,但是面对websphere这么个平台,就不是那么乐观了,在最后第5步发布的时候,产生一堆的问题,目前来看是可以正式访问了,但是将来是否会产生不可知的问题,这个真不清楚...

--------------------------------------------------------------------------我是华丽的分隔线----------------------------------------------------------------------

(1).在部署Strust2+spring+ibatis 项目到WebSphere 6.1.0.17时所有struts2的程序找不到Action的情况,

解决方法如下:找到 控制台>服务器>应用程序服务器>[选择所使用的服务器]>Web 容器设置>Web 容器>定制属性
增加名称为“com.ibm.ws.webcontainer.invokefilterscompatibility”的定制属性,值为true。

(2).ADMA5004W: 无法编译 Web 归档(WAR)文件 cctvPpms.war 中的 JavaServer Pages(JSP)文件;请检查日志以查找更多错误。 
ADMA0215I: JavaServer Pages(JSP)编译任务已完成。 

尝试删除应用lib目录下j2ee.jar,怀疑和WAS服务器j2ee.jar冲突,结果仍旧访问不成功。。。
(3).关于报错找不到app.tld的解决方式:

修改web.xml
注释掉:/WEB-INF/tld/app.tld  

(4).信息: validateJarFile(E:\ctvit_prj\Tomcat 6.0\webapps\PMS1_0527.war\WEB-INF\lib\j2ee.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2018-7-12 16:50:23 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter usertranscation
java.lang.NoClassDefFoundError: javax/transaction/UserTransaction

方案:下载jta-1.1.jar包

(5).org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xd8ed) was found in the element content of the document.
[7/16/18 8:33:34:451 CST] 00000059 RequestUtils  E org.apache.struts.util.RequestUtils createActionForm Error creating form bean of class com.cctv.ppms.pms.prgmng.struts.formbean.ProgramTopicQueryFormBean
java.lang.ExceptionInInitializerError

分析:
https://bbs.csdn.net/topics/350207287/
encoding="GB2312" 改 UTF-8

第一步,服务器>应用程序服务器,选择所使用的服务器。
  第二步,服务器基础结构>Java和进程管理>进程定义,选择进程定义。
  第三步,其他属性>Java虚拟机,在通用JVM参数中增加file.encoding参数,例如:-Dfile.encoding=GB2312

无效

-Dfile.encoding=UTF-8 -Ddefault.client.encoding=UTF-8 -Dclient.encoding.override=UTF-8 -Duser.language=zh -Duser.region=CN -Duser.country=CN

增加:
 -Dfile.encoding=GBK -Ddefault.client.encoding=GBK
 
 "http://www.ibatis.com/dtd/sql-map-2.dtd" 改 "http://www.ibatis.com/dtd/sql-map-config-2.dtd"

程序文件改回:encoding="UTF-8" 改 GB2312

神奇的错误没了,不过又迎来新的错误:

(5).[7/16/18 16:07:33:468 CST] 0000006f ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet /pms/program/addprogramtopic.jsp in application PMS1_0527_war. Exception created : com.ibm.websphere.servlet.error.ServletErrorReport: javax.servlet.jsp.JspException: Exception thrown by getter for property pro_center_name of bean programTopic
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:701)

字面意为找不到实体BEAN中的getter方法,但实际是存在的,也属于诡异的异常...

--试着改了下属性名字,发现不是名字本身的问题
com.ibm.websphere.servlet.error.ServletErrorReport: javax.servlet.jsp.JspException: No getter method for property pro_center_name_value of bean programTopic

--getter方法是存在的,在方法内部加N条out语句,发现还是获取数据源时出错
com.ibm.websphere.servlet.error.ServletErrorReport: javax.servlet.jsp.JspException: Exception thrown by getter for property pro_center_name of bean programTopic
修改本地文件:depart-sql-map-config.xml 将JNDI改JDBC方式.可以通过,不是解决问题的根本办法。还是继续查找JNDI的问题

(6).

[7/17/18 15:47:12:918 CST] 000000ac ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Uncaught exception created in one of the service methods of the servlet /common/jsp/testXML.jsp in application PMS1_0527_war. Exception created : com.ibm.websphere.servlet.error.ServletErrorReport: java.lang.NoClassDefFoundError: com.cctv.ppms.client.ibatis.DaoConfig (initialization failure)


-agentlib:getClasses -Dfile.encoding=GBK -Ddefault.client.encoding=GBK

修改ibm-web-bnd.xmi中增加如下:

不管如何调试修改,最终也无法解决JNDI获取不到的问题,网上的办法都尝试了一遍,是否是这种环境跨度太大,was无法承载1.4编译的程序未知...

 

你可能感兴趣的:(java)