zoukankan      html  css  js  c++  java
  • WAS5.1上LogFactory的错误

    在WAS5.1上 部署,如果我选择PARENT_LAST的话,总会报一个错误,如下:
    [Servlet 错误]-[action]:无法装入 servlet:java.lang.ExceptionInInitializerError
    Caused by: org.apache.commons.logging.LogConfigurationException: The chosen LogFactory implementation does not extend LogFactory. Please check your configuration. (Caused by java.lang.ClassCastException: com.ibm.ws.commons.logging.TrLogFactory)
    Caused by: java.lang.ClassCastException: com.ibm.ws.commons.logging.TrLogFactory
    网上查了,说是was有自己的LogFactory,认不出commons.logging的logger。
    反正解释很多,解决办法也很多,有一个解决办法就是说在源文件根目录下新建一个任意命名的properties,里面加入:
    org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
    然后有人又说,这句话不推荐,应该是
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4jLogger
    不过两个方法我都试过,都不行,后来终于在官方网站上找到了解释,地址是:
    http://commons.apache.org/logging/troubleshooting.html
    解决办法就是用commons-logging-adapters.jar替换commons-logging.jar
    我下载了一个commons-logging-adapters.jar,地址如下(非官方的地址)
    http://www.java2s.com/Code/Jar/Apache-Common/Downloadcommonsloggingadapters11jar.htm
    替换掉后,解决问题。

    在tomcat中使用,出错,说找不到logger,后来对比了两个包,发现adapters里面没有impl目录,那tomcat默认没有logFactory,只会去找org.apache.commons.logging.impl,而was默认是找org.apache.commons.logging。adapter我估计是把impl的几个logger从impl摆到了上一层目录,为了适应was而设计的。找不到。看来以后在部署的时候如果要使用PARENT_LAST,才替换adapter这个jar包。
  • 相关阅读:
    oracle 分布式数据库
    oracle 触发器
    oracle 存储过程,函数和包
    oracle 回收站
    oracle PL/SQL程序设计
    oracle 使用 ALTER 操作列
    oracle 集合运算符
    软工实践作业(六)
    软工实践作业(五)
    软工实践作业(四)
  • 原文地址:https://www.cnblogs.com/zjblue/p/1209710.html
Copyright © 2011-2022 走看看