java - 来自 apache commons 的 httpclient 不适用于 jboss

标签 java android apache maven jboss

我已经在maven项目中使用slf和jcl在slf上设置了logback。我还删除了对公共(public)日志记录的所有依赖项。日志系统按预期工作,除了 jboss 上的 org.apache.http.wire http 客户端,但它在 tomcat 上工作正常。

我的 Maven 的 fragment 是: org.apache.httpcomponents http客户端 4.5 公共(public)日志记录 公共(public)日志记录

<!--Logging-->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-core</artifactId>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
</dependency>

编辑:我还添加了 jboss-deployment-struct

<deployment>
    <exclude-subsystems>
        <subsystem name="jpa"/>
    </exclude-subsystems>
    <exclusions>
        <module name="javaee.api"/>
        <module name="org.apache.commons.logging"/>
        <module name="org.slf4j"/>
        <module name="org.slf4j.impl"/>
        <module name="org.slf4j.ext"/>
        <module name="org.slf4j.jcl-over-slf4j"/>
        <module name="org.apache.log4j"/>
        <module name="org.jboss.logging.jul-to-slf4j-stub"/>
    </exclusions>
</deployment>

可能的解决方案是使 commons-logging 与 logback 并行工作并使用另一个文件。

我们的jboss版本是: 红帽 JBoss 企业应用平台 - 版本 6.4.3.GA

最佳答案

解决方案取决于 Jboss 版本,并且可能更复杂。假设 7xx 版本 org.apache.commons.logging 模块是隐式依赖项,并且默认加载。 更多详细信息请参见此处: https://docs.jboss.org/author/display/AS7/Implicit+module+dependencies+for+deployments

如果你想排除这个模块,你必须创建 jboss-deployment-struct.xml 文件(未测试示例):

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.commons.logging" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

您可以在以下位置找到更多信息: https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7

关于java - 来自 apache commons 的 httpclient 不适用于 jboss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32569228/

相关文章:

java - JNI_CreateJavaVM函数方法不起作用,无法调试

java - 即使关闭键盘,Phonegap android 导航栏也不会隐藏

android - 实现购物车

linux - 在 CentOS 7 上从源代码构建 apr-utils -- 依赖问题

apache - 子目录上的 Flask App 404

java - 保证 Solr 提交已经发生

java - 使用 DOM 解析动态内容的 Xml

java - 我将如何创建 "infinite"循环,直到用户决定退出?

android - 在 Android 中使用 EditText 小部件的屏蔽输入

PHP 不会在 Apache2 上解析 - CentOS 7