【问题标题】:No implementation defined for org.apache.commons.logging.LogFactory while accessing the axis webservice访问轴 web 服务时没有为 org.apache.commons.logging.LogFactory 定义实现
【发布时间】:2017-04-24 13:43:19
【问题描述】:

访问 web 服务时出现以下错误。尝试应用 common-logging.jar 但问题 din 已解决。

org.apache.commons.discovery.DiscoveryException: 访问轴 web 服务时没有为 org.apache.commons.logging.LogFactory 定义实现

能够从包含 jaxrpc、mail.jar、wsdl4.jar、commons-discovery-0.2.jar、commons-logging-api-...的测试项目中使用 main 方法访问相同的服务,如下所示 1

但同样的服务给出了包含以下 jar 列表的问题。除了 0.2 之外,还添加了 commons-discovery-0.4

【问题讨论】:

  • 尝试将 commons-logging 添加到 buildpath 但效果很好
  • 删除 jar 文件 commons-httpclient 和 commons-discovery 的重复条目,如果有的话。
  • 你在使用maven进行依赖管理吗?
  • 已尝试删除重复项..不走运...感谢您的回复..是的 Sachin 我们正在使用 maven
  • 这个错误是因为axis也有它的commons-logging依赖,你可以通过maven依赖管理删除它。

标签: java apache jar axis2 webservices-client


【解决方案1】:

您的 IDE 中没有依赖层级选项卡。所以为了检查依赖树安装maven,如下所述:

下载 maven bin 压缩文件

解压并粘贴到 Program Files 文件夹中

编辑路径环境变量(在路径中添加maven bin文件夹位置)

进入项目主目录

运行以下命令:mvn dependency:tree -Doutput=output.txt

这将生成 maven 依赖树。

现在检查您的 pom.xml 中的哪些依赖项多次显示(使用 Ctrl + F)功能或手动执行。现在删除使用<exclusions> 标记两次显示更多它们的依赖项(已经为您解释了axis2-kernel,就像那样)。

现在单独添加 commons-loging maven 依赖:

<dependency> 
  <groupId>commons-logging</groupId> 
  <artifactId>commons-logging</artifactId> 
  <version>1.0.3</version> 
</dependency>

此过程将删除重复的依赖项并消除您的 commons-logging 框架问题。

如果遇到问题,请发表评论。

【讨论】:

    【解决方案2】:

    如果这有助于在 JUnit 单元测试中遇到此异常的人,以下内容对我不起作用。

    @BeforeClass
    public static void beforeClass() {
    System.setProperty("org.apache.commons.logging.LogFactory", 
    "org.apache.commons.logging.impl.LogFactoryImpl");
    System.setProperty("org.apache.commons.logging.Log", 
    "org.apache.commons.logging.impl.Log4JLogger");
    }
    

    有效的方法是将第一条语句替换为以下语句。

    System.setProperty(LogFactory.FACTORY_PROPERTY, LogFactory.FACTORY_DEFAULT);
    

    【讨论】:

      【解决方案3】:

      通过将以下内容添加到 commons-logging.properties 并将文件添加到类路径来解决问题。

      org.apache.commons.logging.Log = org.apache.commons.logging.impl.Log4JLogger org.apache.commons.logging.LogFactory = org.apache.commons.logging.impl.LogFactoryImpl

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        • 2012-02-28
        • 1970-01-01
        相关资源
        最近更新 更多