2012-10-23 2 views
2

Spring + ApacheCXF를 사용하여 개발 된 웹 서비스가 있으며 JBoss AS7에서 eploy해야합니다. 그들은 CXFServlet에 의해 적절히 배치되고 있습니다.JBoss AS 7에서 @WebService 주석 스캐닝을 비활성화하는 방법은 무엇입니까?

그러나 JBoss AS7은 @WebService 주석 (Spring Injection없이 예상 됨)을 스캔하여 배포합니다.

JBoss AS 7에서 @WebService 주석 스캐닝을 어떻게 비활성화합니까?

추 신 : .war 파일로 배포 중입니다.

PS 추신 : 현재 사용중인 cxf 웹 서비스가 올바르게 배포되고 있습니다. 하지만 JBoss AS7은 또한 @WebService 클래스를 스캔하고 그것들을 (의존성 삽입없이) 배치하려고합니다. @WebService 클래스에 대한 JBossAS7의 스캐닝을 돌리는 방법을 찾고 있습니다.

답변

1

내 응용 프로그램 컨텍스트 XML 파일에서 exclude-filter를 사용하여 Spring 구성 요소 검사에서 웹 서비스 구성 요소를 제외합니다.

<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의 구성 요소 검사에 포함시킵니다.

+0

스프링/CXF를 스캔하고 싶습니다. JBossAS7에서 @WebService를 무시하고 싶습니다. –

+0

응용 프로그램에는 최소 2 개의 컨텍스트 XML이 있어야하며, 자체 컨텍스트로 디스패처 서블릿을 설정하는 경우 3 개까지 설정해야합니다. 내가 당신에게 제안하는 것은 WebService 구성 요소를 포함하는 CXFServlet 컨텍스트에 대한 구성 요소 검사를 작성하고이를 제외하는 응용 프로그램 컨텍스트에서 구성 요소 검사를 작성하는 것입니다. – hoaz

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> 

. 아직 테스트 중이지만 더 이상 서비스를 배포하지 않습니다. 봄을 사용하여 배포 할 수 있다고 가정합니다. 희망이 도움이됩니다.

0

저는 JBoss EAP 6.1을 사용하고 있습니다. 서브 시스템 jaxrs와 webservices를 제외하고 동일한 문제를 해결했습니다.

보스 배포-structure.xml이 아니라 제이 보스 6 적용

<?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> 
2

. 내 Jboss 6.2.2에서 시도했습니다. 코멘트는 다음 같은 standalone.xml에 아래의 코드 조각을 언급 standalone.xml

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

에 다음과 같습니다. 다른 프로필 이름을 사용 중이거나 도메인 모드에서 비슷한 위치에 있어야합니다.

<!-- 
    <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> 
    --> 
관련 문제