2014-02-27 6 views
0

Maven과 함께 Enunciate를 사용하여 war 파일을 빌드하는 jax-ws 프로젝트가 있습니다. 내 app-server에 배포 할 때 SoapUI로 테스트 할 때 이상한 네임 스페이스 문제가 발생합니다. xml 요청에 내 complex-type에 대한 올바른 네임 스페이스 접두사가 있지만 요청이 서버에 제출되면 개체는 항상 null입니다.Enunciate의 네임 스페이스 문제

@WebService(targetNamespace = "http://namespace.com/dog/service") 
public interface DogSoapService { 
    @WebMethod 
    public Dog submit(
     @WebParam(name = "dog") 
     Dog dog) throws MyWebFault; 

이하게 발음으로 잘 구축,하지만 난 SoapUI를 통해 요청을하려고하면 '개'객체가 null로 서버에 온다 :

여기 내 웹 서비스 인터페이스입니다.

maven에서 enunciate의 '어셈블'목표를 비활성화하고 'targetNamespace'를 개 WebParam에 추가하면 요청이 SoapUI에서 완벽하게 작동합니다. 내가 생성 된 담아서 사이의 분리의 어떤 종류가있는 것을 볼 수

javax.xml.ws.WebServiceException: class com.myproject.dog.ws.jaxws.Submit do not have a property of the name {http://namespace.com/dog/model}dog 
at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.<init>(EndpointArgumentsBuilder.java:513) 
... 
Caused by: javax.xml.bind.JAXBException: {http://namespace.com/dog/model}dog is not a valid property on class com.myproject.dog.ws.jaxws.Submit 
... 
Caused By: javax.xml.bind.JAXBException: {http://namespace.com/dog/model}dog is not a valid property on class com.myproject.dog.ws.jaxws.Submit 
... 
Truncated. see log file for complete stacktrace 

: 나는 '조립'을 목표로 내 프로젝트를 빌드 할 경우

@WebService(targetNamespace = "http://namespace.com/dog/service") 
public interface DogSoapService { 
    @WebMethod 
    public Dog submit(
     @WebParam(name = "dog", targetNamespace = "http://namespace.com/dog/model") 
     Dog dog) throws MyWebFault; 

그러나, 배포는이 오류와 함께 실패 '요청'래퍼 클래스와 'Dog'개체를 제출하지만, 내 인생에서 나는 그것을 해결할 수 없습니다. 도와주세요! 미리 감사드립니다.

답변

0

jaxws 지원 모듈을 비활성화하면 어떻게됩니까?

<enunciate> 
    ... 
    <modules> 
     ... 
     <jaxws-support disabled="true"/> 
    </modules> 
    </enunciate>