2008-11-05 4 views
2

jaxb 주석을 사용하여 내 도메인 객체에 비 정렬하려는 비누 응답을 반환하는 축 1.4 웹 서비스를 사용하고 있습니다. 반환 된 메시지 중 일부가 multiRef 요소를 가질 때까지는 초기 테스트가 잘 수행되었습니다. multiRef를 사용하여 마샬링 된 객체는 내 클라이언트 측 주석이 달린 모델 객체에 null로 표시되었습니다.jaxb로 비누 응답을 생성 (multiref 포함) 축 비 정렬

제 질문은 JAXB가 multiRef 엘리먼트로 비누 응답을 언 마샬링하는 것을 지원합니까? 그렇다면 어떻게? 그리고 그렇지 않다면, java의 내 도메인 모델에 축 1.4 비누 응답을 unmarshal하는 더 좋은 방법을 알고있는 사람이 있습니까?

답변

1

웹 서비스의 경우 JAXB는 혼자가 아니라 ws 클라이언트 프레임 워크의 데이터 바인딩 부분입니다. 그래서 당신의 질문에 축 1.4 내에서 데이터 바인딩 JAXB 사용하는 방법입니다 가정합니다. 일반적으로 나는 이것을 달성하는 쉬운 방법이 없다고 생각한다. 축 사용자 메일 링리스트의 다음 스레드를 살펴 보자 : Specify JAXB generated complex types to Axis web service.

axis2를 사용하여 웹 서비스를 사용하도록 업그레이드 할 수있는 경우 axis2는 통합 jaxb 구현을 포함하여 플러그 가능 데이터 바인딩 아키텍처와 함께 제공되기 때문에 훨씬 쉽습니다.

0

웹 서비스의 축 측면도 사용자가 제어 할 수있는 경우 org.apache.axis.AxisEngine.PROP_DOMULTIREFS 속성을 false로 설정할 수 있습니다. 이 경우 Axis는 multiRef 요소를 생성해서는 안됩니다. 클라이언트 측 Axis에서이 속성을 사용했습니다. 서버 쪽에서 같은 방식으로 작동합니다.

0

MultiREF를 처리하는 경우 RPC 서비스를 많이 사용하고있을 가능성이 있습니다. JAXB는 문서 스타일 웹 서비스에 적합합니다. 는 RPC 스타일의 서비스를 사용하기 위해

는 개미 작업이 스텁을 생성하는 데 사용할 수 있습니다 WSDL2Java가, JAXB, JiBX는 또는

사용 일반 JAX-RPC와 같은 바인딩 외부를 사용하고, 옵션을 nobinding 를 지정하지 마십시오.

관련 문제