java - 需要从 jboss 6.4 模块中排除 apache httpcomponent

标签 java jboss jboss-eap-6

我们最近从jboss 6.1 eap迁移到6.4 eap,但面临类加载问题。

在我的项目lib中需要使用apache httpcore 4.4.1,但是6.4中包含了apache httpcore 4.3.3这个以前我们使用 jboss 6.1 时这不是问题,因为 resteasy-jaxrs module.xml 没有导出 httpcore 库。

现在使用 jboss 6.4 我们得到异常:

Caused by: java.lang.NoSuchMethodError: org.apache.http.util.Asserts.check(ZLjava/lang/String;Ljava/lang/Object;)V

这是因为我的项目在运行时使用的是 jboss 提供的 jar,并且没有具有所需签名的此方法。

现在我想强制我的应用程序不使用 jboss jar 并使用 web-inf/lib 文件夹中可用的 jar。

我试图通过 jboss-deployment-structure.xml 排除它,但不知何故它不起作用,它仍然只使用来自 jboss 的 jar。

下面是 jboss-deployment-structure.xml 文件的截图。

<deployment>
        <exclusions>
            <module name="org.apache.httpcomponents" />
        </exclusions>

         <dependencies>
             module name="org.apache.httpcomponents" />
        </dependencies>
</deployment>

有人可以帮我解决这里缺少的东西吗,或者有其他选择吗...

最佳答案

因为您使用的是 JBoss EAP,您可以为 EAP 6.4(所以您的版本应该是 JBoss EAP 6.4.7)应用 CP07 补丁,这个问题已经得到解决。我强烈建议应用 CP07 补丁。

或者,您可以设置 <module name="org.apache.httpcomponents" export="false"/>$JBOSS_MODULES\org\jboss\resteasy\resteasy-jaxrs\main\module.xml .

但是,我建议应用补丁作为推荐的解决方案。这样您就不会修改产品随附的配置。

关于java - 需要从 jboss 6.4 模块中排除 apache httpcomponent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35286876/

相关文章:

java - Spring Boot 和 Google SSO

java - 如何将路由与单个主方法分开,以便我可以处理差异类(如 servlet)中的请求

java - 通过 wildfly maven 插件重启 jboss 的命令行参数是什么?

deployment - JBOSS CLI 添加带有可选依赖项的模块

java - Jboss eap 6.4 https 配置无法监听端口 8443

java - 使用 setParameter 进行 ebean 查询

java - session 超时后,Spring Security 不会重定向到上次请求的页面登录

netbeans - 如何在netbeans中调试JBOSS应用程序?

java - 哪个在 Tomcat、Jboss AS 和 Glassfish 中表现更好?

web-services - 在 Jboss 6.3.0 EAP 中部署 Java WS 时出错