2

我有使用 Spring+ApacheCXF 开发的 Web 服务,我需要在 JBoss AS7 上部署它们。它们正在由 CXFServlet 正确部署。

但是 JBoss AS7 也通过扫描 @WebService 注释来部署它们(正如预期的那样,没有 Spring 注入)。

如何在 JBoss AS 7 中禁用扫描 @WebService 注释?

PS:我正在部署为 .war 文件。

PS PS:我当前的 cxf 网络服务正在正确部署。但是 JBoss AS7 也尝试扫描 @WebService 类并部署它们(没有注入依赖项)。我正在寻找一种方法来关闭 JBossAS7 对 @WebService 类的扫描。

4

4 回答 4

4

这也适用于 Jboss 6。我在我的 Jboss 6.2.2 上试过了。在standalone.xml 中注释以下内容

<!-- <extension module="org.jboss.as.webservices"/> -->

然后在同一个standalone.xml 中注释下面的代码片段。请注意,如果您使用不同的配置文件名称或在域模式下,您将不得不在类似的地方执行此操作。

<!-- 
    <subsystem xmlns="urn:jboss:domain:webservices:1.2">
        <modify-wsdl-address>true</modify-wsdl-address>
        <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
        <endpoint-config name="Standard-Endpoint-Config"/>
        <endpoint-config name="Recording-Endpoint-Config">
            <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
                <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
            </pre-handler-chain>
        </endpoint-config>
        <client-config name="Standard-Client-Config"/>
    </subsystem>
     -->
于 2015-01-19T06:26:40.293 回答
2

我相信你会想从你的standalone.xml中删除它

<extension module="org.jboss.as.webservices"/>

<subsystem xmlns="urn:jboss:domain:webservices:1.1">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>${jboss.bind.address:127.0.0.1}</wsdl-host>
    <endpoint-config name="Standard-Endpoint-Config"/>
    <endpoint-config name="Recording-Endpoint-Config">
        <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
        <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
        </pre-handler-chain>
    </endpoint-config>
</subsystem>

这就是我删除 jboss webservices 所做的,所以我可以使用其他东西。我仍在对此进行测试,但它不再部署服务。我假设我将能够使用 spring 进行部署。希望这可以帮助。

于 2013-02-21T23:26:09.920 回答
1

我在我的应用程序上下文 XML 文件中使用 exclude-filter 从 Spring 组件扫描中排除 Web 服务组件。

<context:component-scan base-package="your.application.base.package">
    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    <context:exclude-filter type="annotation" expression="javax.jws.WebService" />
</context:component-scan>

同时,我将它们包含在 CXF 上下文 XML 的组件扫描中。

于 2012-11-06T13:06:15.673 回答
0

我正在使用 JBoss EAP 6.1,我解决了同样的问题,不包括子系统 jaxrs 和 webservices。

jboss-部署-结构.xml

    <?xml version="1.0"?>

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
        <deployment>
            <exclude-subsystems>
                <subsystem name="jaxrs" />
                <subsystem name="webservices" />
            </exclude-subsystems>
            <exclusions>
                <module name="javaee.api" />
                <module name="org.apache.log4j" />
            </exclusions>
            <dependencies>
                <module meta-inf="export" name="com.liferay.portal">
                    <imports>
                            <include path="META-INF" />
                    </imports>
                </module>
                <module name="javax.mail.api" />
                <module name="org.jboss.modules" />
            </dependencies>
        </deployment>
</jboss-deployment-structure>
于 2014-09-01T10:21:40.467 回答