【问题标题】:Turn off JBoss WS module in JBoss 5.1在 JBoss 5.1 中关闭 JBoss WS 模块
【发布时间】:2013-10-08 13:57:31
【问题描述】:

我正在尝试将我的 CXF Web 应用程序部署到 JBoss 5.1 GA。所有功能在 Tomcat 中都可以正常工作,但内部 JBoss-WS jar 会导致一些意外行为(与编写的 here 相同),因此我想关闭 Jboss webservice 子系统,因为它编写为 here.

问题是在WEB-INF中放置jboss-deployment-structure.xml在重启服务器后也没有任何效果,所以我认为5.1版本不支持。从 /deployers 中删除 jbossws.deployer 并从 /deploy 中删除 jbossws.sar(如 here 所写)不是一个有效的选项,因为有许多应用程序可能会受到它。

所以我的问题是如何禁用内部 JBoss WS 模块?

非常感谢,

彼得

【问题讨论】:

    标签: java web-services jboss jax-ws cxf


    【解决方案1】:

    请参阅 JAX-WS 规范的“6.2.1 配置”部分。第 1 点说:

    1. 如果名称为 META-INF/services/javax.xml.ws.spi.Provider 的资源存在,则其第一行(如果存在)用作实现类的 UTF-8 编码名称。

    JBOSS_HOME/common/lib/jbossws-native-jaxws.jar JAR 包含META-INF/services/javax.xml.ws.spi.Provider 文件,其中包含:

    org.jboss.ws.core.jaxws.spi.ProviderImpl
    

    因此,根据上述规范的第 2 点或第 3 点,您可以:

    • 使用${java.home}/lib/jaxws.properties
    • 使用名称为javax.xml.ws.spi.Provider的系统属性

    当我尝试使用最新的 CXF 提供程序时,我已经使用 JBoss 6 完成了此操作。

    【讨论】: