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

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

  • 相关阅读:
    转一篇GCC相关的文章
    STM32 NVIC
    阻塞套接字返回EAGAIN
    ndk编译libpcap 1.7.4(最终解决方法)
    ndk编译libpcap 1.7.4
    C# 解析torrent文件
    NPOI 读取excel的时候,时间格式的处理
    asp.net webapi 获取报文体的问题
    .net core 2.0 报错:error NU1102: Unable to find package 。。。
    SQL SERVER获取信息的方法
  • 原文地址:https://www.cnblogs.com/xiaodl/p/2506690.html
Copyright © 2011-2022 走看看