tomcat5.5.12 javax/el/ExpressionFactory 工程部署失败案例

      今天遇到奇怪问题,myeclipse6.5 +tomcat 6.0开发的项目 部署到客户tomcat5.5.12中失败(5.5.20及以上都没有问题)非常郁闷。具体表现为tomcat启动不报错,但访问工程提示404错误,包括工程中的任何html也无法访问,如果使用war包根本就不解压缩。

难道这个tomcat5.5.X中的x就这么牛啊?

百般折腾,在伟大的互联网搜索下看到一位网友的提示:提高tomcat日志级别看看到底哪出错了,于是照做(具体步骤如下,在此感谢这位网友)

 

提高tomcat日志:

1、拷贝commons-logging-1.0.4.jar、log4j-1.2.11.jar(具体版本号及安装目录视情况而定)到 tomcat5.5.12/common/lib

2、在tomcat5.5.12/common/classes中创建log4j.properties文件并输入如下内容:

log4j.rootLogger=info,Console,R
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n
log4j.logger.org.apache=info,R
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
log4j.logger.org.apache.catalina.core=info,R
log4j.logger.org.apache.catalina.session=info,R

3、重启tomcat,就会在tomcat5.5.12/logs中看见tomcat.log,慢慢找到出错的地方,我的提示什么java.lang.NoClassDefFoundError:javax/el/ExpressionFactory

 

解决问题:

后来才了解到出现这个问题的原因是javax.el.ExpressionFactory是 unified EL的一部分,并且已经做为JSR 245标准成了JSP2.1的一部分,JSF1.1还没有用到JSR245标准,但是JSF1.2已经用上了JSR 245标准,假如要部署一个JSR1.2的portlet到一个不支持JSR245的web容器就会出现这个异常(这个是某个网友的解释,不过个人认为很正确啊)。也就是说tomcat5.5.12还没有用JSR245标准。

那么就需要拷贝javaee.jar到tomcat5.5.12/common/lib中,重启tomcat解决问题!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值