【问题标题】:How to disable scanning @WebService annotations in JBoss AS 7?如何在 JBoss AS 7 中禁用扫描 @WebService 注释?
【发布时间】:2012-10-23 03:04:38
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: web-services spring cxf jboss7.x


    【解决方案1】:

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

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

    然后在同一个standalone.xml 中注释下面的sn-p。请注意,如果您使用不同的配置文件名称或在域模式下,您将不得不在类似的地方进行。

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

    【讨论】:

      【解决方案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 进行部署。希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        我在我的应用程序上下文 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 中的组件扫描中。

        【讨论】:

        • 我希望 Spring/CXF 扫描它们...希望 JBossAS7 忽略 @WebService。
        • 您应该在我们的应用程序中至少有 2 个上下文 XML,如果您使用自己的上下文设置调度程序 servlet,甚至应该有 3 个。我的建议是为包含 WebService 组件的 CXFServlet 上下文编写组件扫描,并在排除它们的应用程序上下文中编写组件扫描。
        【解决方案4】:

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

        jboss-deployment-structure.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>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-19
          • 1970-01-01
          • 1970-01-01
          • 2015-02-17
          • 2011-08-18
          • 2015-05-08
          相关资源
          最近更新 更多