【问题标题】:LogConfigurationException when using HttpClient使用 HttpClient 时出现 LogConfigurationException
【发布时间】:2014-01-09 13:00:39
【问题描述】:

当我的代码执行这一行时:

DefaultHttpClient httpclient = new DefaultHttpClient();

我遇到了这个异常:

org.apache.commons.logging.LogConfigurationException:类 org.apache.commons.logging.impl.Log4JLogger 未实现 Log

有人知道我该如何解决吗? 也许不重要(或者也许不重要),但该应用程序是 Jira 的插件,并且使用 Maven 作为依赖项。

谢谢!

编辑:

编辑 2:
这可能与 Jira 的 OSGi 有关吗?

如何在 OSGi 环境中使用公共日志记录?

从这里:
http://wiki.apache.org/commons/Logging/FrequentlyAskedQuestions

Commons-logging 在设计时并未考虑到 OSGi。这就是为什么 难以在 OSGi 环境中使用公共日志记录:

LogFactory 按名称加载日志实现(参见 类.forName(字符串))。这在 OSGi 中通常是不可能的,因为 每个包类加载器只能看到包定义的类 为进口。加载 commons-logging 的包类加载器 捆绑包将无权访问用户提供的 commons-logging.properties 文件。 commons-logging-api.jar 包含 commons-logging.jar 中也包含的类。这是 与传统的 OSGi 应用程序架构相反,其中一个 bundle 定义了一个 API,其他 bundle 提供了实现 那个API。在 OSGi 中直接使用公共日志记录的替代方法 是:

包含正确 OSGi 元数据的重新捆绑版本可用 来自 Apache Felix、SpringSource 和 Eclipse Orbit。使用 Pax 日志记录。 有关此主题的更多信息可在以下档案中找到 the commons dev ML 和 the felix dev ML and in Jira。

当我尝试从 Jira 访问 OSGi 选项卡时(转到 JIRASERVER/plugins/servlet/upm/osgi#osgi),我可以看到一个异常:
classNotFoundException: org.apache.commons。 logging.impl.SLF4JLogFactory

我还可以从 IDE(搜索 Log4JLogger 类时)看到我有两个定义:

package org.apache.commons.logging.impl.Log4JLogger
public class Log4JLogger implements Log, Serializable {

package com.atlassian.extras.common.log;
class Log4jLogger implements com.atlassian.extras.common.log.Logger.Log {

这真是令人困惑....

【问题讨论】:

  • 请发布完整的堆栈跟踪。
  • @SotiriosDelimanolis 我已经用 Stack Trace 添加了一张图片,希望对您有所帮助(如果您看到的图片太小,请右键单击并在新选项卡中打开)

标签: java maven jira-plugin apache-commons-httpclient


【解决方案1】:

我不确定,但可能是您配置的记录器与您的 pom 依赖项中的记录器不对应吗?也许是不同的版本?

【讨论】:

  • 我不确定,如何检查那个 Bart?我是 Maven 的新手,我与那里的依赖关系做了很多斗争。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-23
相关资源
最近更新 更多