常见升级过程可能遇到的问题以及解决办法
1. 日志提示
信息: validateJarFile(/data/jsp/www.netfilm.cn/skin/ROOT_3/WEB-INF/lib/jsdk23.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
原因: jsdk23.jar 是resin的 servlet 2.3规范的实现, 目前用的是tomcat 容器,所以冲突了,但系统会忽略加载该jar;
解决办法: 可以不用处理,迁移成功后,可以删除该文件;
2. 日志提示
严重: Error processing TLD files for context path /
javax.servlet.ServletException: Exception processing TLD at resource path /WEB-INF/webwork.tld in context /
原因: WEB-INF/webwork.tld 文件没找到,因 web.xml 有如下配置
<taglib>
<taglib-uri>webwork</taglib-uri>
<taglib-location>/WEB-INF/webwork.tld</taglib-location>
</taglib>
解决办法:找到 WEB-INF/lib/webwork-2.1.7.jar 这个文件(具体版本号可能有差异), 拷贝到 /tmp目录,unzip 解压该文件,将解压后META-INF/taglib.tld 文件改名
成 webwork.tld , 拷贝到 相应 WEB-INF目录 ,重启 tomcat 即可;
3. 日志提示
严重: Parse error in application web.xml file at
jndi:/admin.netfilm.cn//WEB-INF/web.xml
java.lang.IllegalArgumentException: Invalid <url-pattern> /*.jsp in filter mapping
原因: tomcat 的 servlet 的实现遵守严格的servlet mapping 规范,该mapping规则不符合规范,故报错
解决办法:将 <url-pattern>/*.jsp</url-pattern> 改成<url-pattern>*.jsp</url-pattern>
参考: specs 目录下的 servlet-2_4-pfd3-spec.pdf 中的 Specification of Mappings 相关内容
4. 使用类似 <%@ include file="/inc/page_charset.jsp"%> 方式来指定页面charset , 外层的 jsp 中文显示乱码问题
原因: tomcat编译该2个jsp文件时编码选择错误(未真正将2个文件合并成一个文件来处理)
解决办法: 升级 相应应用的 web.xml
将 web.xml 升级为支持 Servlet2.5规范,声明如下:
<?xml version="1.0" ?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
并在web.xml <web-app>元素下添加配置信息,如下所示(其中gbk就是指定的编码):
<!-- 注:该声明从Servlet2.4才支持,故需先升级web.xml声明 -->
<jsp-config>
<jsp-property-group>
<display-name>JSPConfiguration</display-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>*.htm</url-pattern>
<el-ignored>true</el-ignored>
<page-encoding>gbk</page-encoding>
<scripting-invalid>false</scripting-invalid>
</jsp-property-group>
</jsp-config>
5. 日志提示
严重: Parse error in application web.xml file at jndi:/adf.netmovie.com.cn//WEB-INF/web.xml
部分原因: Servlet规范中 web.xml 中 init-param 元素是没有storePath等属性的, 故报错
解决办法:
将 <init-param storePath="/data/jsp/adf.netmovie.com.cn/skin/ROOT/WEB-INF/xml/" />
改成
<init-param>
<param-name>storePath</param-name>
<param-value>/data/jsp/adf.netmovie.com.cn/skin/ROOT/WEB-INF/xml/</param-value>
</init-param>
即可
参考: web.xml 声明文件 http://java.sun.com/dtd/web-app_2_3.dtd 相关内容
6. 目前用到的Tomcat版本: apache-tomcat-6.0.20
tomcat 已经包含的库文件清单 :
annotations-api.jar
catalina-ant.jar
catalina-ha.jar
catalina.jar
catalina-tribes.jar
el-api.jar
jasper-el.jar
jasper.jar
jasper-jdt.jar
jsp-api.jar
jta-1.1.jar
mysql-connector-java-3.1.14-bin.jar
ojdbc6.jar
orai18n.jar
servlet-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
7. 数据源配置在web.xml 中的问题, 如下所示:
<resource-ref>
<res-ref-name>jdbc/proxy</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="oracle.jdbc.driver.OracleDriver"/>
<init-param url="jdbc:oracle:thin:@oracleserver:1521:orcl"/>
<init-param user="username"/>
<init-param password="xyz"/>
<init-param max-connections="100"/>
<init-param max-idle-time="120s"/>
<init-param connection-wait-time="180s"/>
<init-param max-active-time="120s"/>
</resource-ref>
该类配置是resin数据源的配置方法之一(和配置在resin.conf中类似),但是tomcat将不认这种配置方法,故系统将提示无法连接数据库之类的错误,如下所示:
net.sf.hibernate.util.JDBCExceptionReporter 58 2009-12-17 11:28:04104 Cannot create JDBC driver of class '' for connect URL 'null'
net.sf.hibernate.util.JDBCExceptionReporter 57 2009-12-17 11:28:04105 SQL Error: 0, SQLState: null
解决办法: 在tomcat server.xml 中配置该数据源
建议: 除非有特别要求,所有数据源配置,均在server.xml中进行, 方便统一管理
注:server.xml 的配置:
[resin@gzjspsf1 logs]$ cat /opt/jsites/korea.sx.netfilm.cn/conf/server.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- edited with XML Spy v4.2 U (http://www.xmlspy.com) by ttdown.com (ttdown.com) -->
<Server port="10008" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on"/>
<Listener className="org.apache.catalina.core.JasperListener"/>
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
<GlobalNamingResources/>
<Service name="Catalina">
<Connector port="8008" protocol="AJP/1.3" redirectPort="8443" maxThreads='300' useBodyEncodingForURI="true"/>
<Engine name="Catalina" defaultHost="korea.sx.netfilm.cn">
<Host name="korea.sx.netfilm.cn">
<Context path="/"
docBase="/data/jsp/korea.sx.netfilm.cn/skin/ROOT"
workDir="/data/jsp/korea.sx.netfilm.cn/skin/ROOT/WEB-INF/work"
reloadable="true">
<Resource name="jdbc/coonetmovie" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="coonetmovie" password="GVL6IqeN8iDEf" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://121.14.2.202:3306/coonetmovie?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/cpdb" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="resin_adm" password="48bpejg63KD" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://cpmmysql:3306/cpdb?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/cpdb_ro" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="resin" password="ZGuM218HrLt" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://cpsmysql:3306/cpdb?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/netmovie3" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="resin" password="47182388" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mmysql:3306/netmovie3?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/netmovie3_ro" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="resin_ro" password="47182388" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://smysql:3306/netmovie3?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/union_movie" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="union_movie" password="1qazxdr56yhn" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://uniondb:3306/union_movie?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
<Resource name="jdbc/netmovie_news" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="600000"
username="resin_news" password="62768851286n" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://mysql-netmovie:3306/netmovie_newse?useUnicode=true&characterEncoding=utf-8&jdbcCompliantTruncation=false&autoReconnect=true"/>
</Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="/data/jsp/korea.sx.netfilm.cn/logs"
prefix="access.log."
suffix=".txt"
pattern="common"
resolveHosts="false"/>
</Host>
</Engine>
</Service>
</Server>
分享到:
相关推荐
楼主在Keil5使用过程中遇到Jlink V8克隆被识别无法使用,整理了相关问题的解决过程给大家分享。后来升级用了Jlink V10出现"The connected j-link is defective"的问题,解决的方法一并分享给大家。压缩包中包含解决...
对于旧版OpenCV编译make过程中遇到的‘QTKit/QTKit.h' 无法找到文件错误提供解决方法,一种是压缩包QTKit.ramework的文件夹,关闭系统的rootless后移动到 /System/Library/Framework中,另一种是把压缩包中的另一个...
三、网狐荣耀版手机端在复制文本时提示“复制内容非法”的解决办法 在网狐荣耀版开发调试过程中,复制文本时,提示“复制非法内容”,开始吓一跳,没有什么非法内容啊?也没有禁词,也没有国家不允许的内容。最后...
可能由于操作系统不同,或者在安装SQL 2008的时候已经安装SQL其他版本,因此可能会遇到问题,那么这时我们的实际经验和动手测试的能力也是非常重要的,这样才能少走弯路。 问题1:安装sql server 2008 R2,安装...
建议到网上搜索有关此问题的对应解决办法,如果条件允许的话,重装电脑可以解决此问题。 问题17:玩游戏时显示需要安装DirectX8.1或以上版本,可我已经装了,并用本程序修复过了,为什么还是不行? 答:魔兽出现这...
2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序...
载使用漏洞扫描器的过程中,学习者可能会经常遇到一些问题,这里给出有关问题产生的原因和解决办法。扫描器的使用并不是真正黑客生涯的开始,但它是学习黑客的基础,所以学习者应该多加练习,熟练掌握手中使用的扫描...
答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: ...
的过程应该是根据客户的需求及行业的发展来不断升级和完善的过程。 售后服务是否有保障 有保障的售后服务是选择软件产品的基本条件。 一般来说以公司方式运营的产品在售后服务方面更有保障,双方可以以合同...
14.4 继承中关于属性的一些问题.169 14.5 小 结 .172 第四部分 深入了解 C#.174 第十五章 接 口 .174 15.1 组件编程技术 .174 15.2 接 口 定 义 .177 15.3 接口的成员 .178 15.4 接口的实现 .182 ...
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的...
解决办法为:运行“Regedit”命令打开注册表编辑器,依次定位到“[HKEY_ LOCAL_MACHINESOFTWAREMicrosoftInternet Explorer Security]”,在窗口右边新建一个名为“BlockXBM”的REG_ DWORD值,将其值设置为“0”...
异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获...
由于存储器数据容量太大和采用BGA封装,所以采用前面的两种方法都不能很好解决问题。存储容量的增大,最好借助于电脑。为了不拆字库,最好用免拆机的方法通过手机的外部数据接口来对手机软件进行修复。这种方法就是...
书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、dba等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到...
E Red Hat Linux常见问题 E.1 介绍 E.2 勘误表 E.3 联系Red Hat Software E.4 一般资源列表 E.5 一般问题 E.5.1 我如何得到新版本的Red Hat? E.5.2 我如何报告错误? E.5.3 Red Hat Linux是否包含源代码? E....
E Red Hat Linux常见问题 E.1 介绍 E.2 勘误表 E.3 联系Red Hat Software E.4 一般资源列表 E.5 一般问题 E.5.1 我如何得到新版本的Red Hat? E.5.2 我如何报告错误? E.5.3 Red Hat Linux是否包含源代码? E....
E Red Hat Linux常见问题 E.1 介绍 E.2 勘误表 E.3 联系Red Hat Software E.4 一般资源列表 E.5 一般问题 E.5.1 我如何得到新版本的Red Hat? E.5.2 我如何报告错误? E.5.3 Red Hat Linux是否包含源代码? E....
E Red Hat Linux常见问题 E.1 介绍 E.2 勘误表 E.3 联系Red Hat Software E.4 一般资源列表 E.5 一般问题 E.5.1 我如何得到新版本的Red Hat? E.5.2 我如何报告错误? E.5.3 Red Hat Linux是否包含源代码? E....