Java apache commons的httpclient不在jboss上工作

Java apache commons的httpclient不在jboss上工作,java,android,apache,maven,jboss,Java,Android,Apache,Maven,Jboss,我已经在maven项目中通过slf与slf和jcl建立了logback。我还删除了commons日志的所有依赖项。除了jboss上的org.apache.http.wire http客户机之外,日志系统可以正常工作,但在tomcat上工作正常 <!--Logging--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifac

我已经在maven项目中通过slf与slf和jcl建立了logback。我还删除了commons日志的所有依赖项。除了jboss上的org.apache.http.wire http客户机之外,日志系统可以正常工作,但在tomcat上工作正常

<!--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>
my maven的片段包括: org.apache.httpcomponents httpclient 4.5 公用记录 公用记录

<!--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>

org.slf4j
slf4j api
回写
回溯堆芯
回写
回归经典
org.slf4j
jcl-over-slf4j
编辑:我还添加了jboss部署结构

<!--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>
<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日志与logback并行工作,并使用另一个文件

<!--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版本是:
Red Hat JBoss Enterprise Application Platform-版本6.4.3.GA

解决方案取决于JBoss版本,可能更复杂。假设7xx版本org.apache.commons.logging模块是一个隐式依赖项,默认情况下是加载的。
<!--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>
详情如下:

<!--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-structure.xml文件(未测试示例):

<!--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>

有关更多信息,请访问:

请尝试将slf4j(或任何其他日志框架)依赖项放在JBOSS引导类路径中。日志系统很可能在部署应用程序(WAR/EAR)之前已经初始化。
<!--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>
这可以是服务器的
lib
目录,也可以是服务器的
认可的
目录。您可以先将其放入
lib
,然后根据版本和文档,如果解决方案可行,您可以将其移动到适当的位置

<!--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>
希望这有帮助

<!--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>