zoukankan      html  css  js  c++  java
  • 使用OSGI内嵌的jetty进行web开发时:遇到no suitable log constructor错误解决办法

    使用osgi内嵌jetty作为web服务器进行web开发时,遇到错误:

    org.apache.commons.logging.logconfigurationexception:no suitable log constructor [Ljava.lang.class;@1ccf0ad for org.apache.commons.logging.impl.log4jlogger(caused by java.lang.noclassdeffounderror:org/apache/log4j/category)]

    被这个问题困扰了一天,把包换来换去都不行,上网查了以后发现如下两个解决方法:

    1、log4j和commons-log不兼容:出现这种情况的多是在使用Web容器时出现,例如Tomcat。
          解决的方法是删除掉$tomcat/commens/lib/下面的commens-log.jar文件

    2、类包的加载顺序出错:出现这种情况多是各类包的加载顺序不正确所致,我并没有去深究一个工程启动时各类包的加载顺序是怎样的,不过我的错误就属于这种。
          解决的方法是查看是否将一些类包直接放到了%java_home%/jre/lib/ext文件夹的下面,如果有,删除后即可解决。

    上述方法试了还是不行(那叫一个崩溃啊。。。),后来在老大的帮助下找到个帖子发现需要为apache.commons.logging.log手动指定一个实现类,可在vm arguments中添加如下配置:

    -Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

    就这样 ,让我纠结两天的问题解决了。

  • 相关阅读:
    图片文件重命名
    MySql基础学习-Sql约束
    MySql基础学习-库表操作
    java内存模型
    数据库常用函数整理
    linux用户管理
    Db2数据库在Linux下的安装和配置
    图像金字塔
    特征值与特征向量
    齐次线性方程组
  • 原文地址:https://www.cnblogs.com/xiaodl/p/2506690.html
Copyright © 2011-2022 走看看