2012-01-30 2 views
0

나는 조금 의아해 나는 내가 모든을 사용할 필요가 자바에서 CXF를 사용 CXF보다WSDL-첫째 : CXF 코드 생성 베어/미개봉

을 다른 것을 시도해야한다 아마도 몇 가지 구성 누락, 또는 수도 있습니다 생각 해요 Holder 객체를 사용하는 반면, .Net을 사용하는 사람들은 Holder를 전혀 사용하지 않아도됩니다.

생성 된 코드가 WSDL 서명과 동일하므로 WSDL을 생성하는 것이 모두에게 동일한 결과를 가져온 것으로 생각했습니다.

더 구체적인 예 (주석 제거) : .NET에서

동안 그들이이 내부적으로 비주얼 스튜디오에서 해결 내가 CXF

public void loginRequest(
     java.lang.String language, 
     java.lang.String application, 
     java.lang.Boolean userid, 
     javax.xml.ws.Holder<java.lang.String> session, 
     javax.xml.ws.Holder<java.lang.String> userinfo); 

에서 볼

public loginResponse loginRequest(loginRequest loginRequest1) { } 

을인가 참조하거나입니다 CXF에서 뭔가 빠졌나요?

+0

코드 스 니펫을 생성 한 wsdl을 게시 할 수 있습니까? – Jeshurun

답변

1

이것은 JAX-WS 스펙에 따른 것입니다. 각 언어 또는 사양에 따라 WSDL이 특정 언어로 매핑되는 방법이 결정됩니다. CXF의 경우, JAX-WS 스펙은 메소드가 "LogginResponse logingRequest (LoginRequest in)"처럼 보이거나 응답 오브젝트가 unwrapped 된 곳에서 완전히 래핑되지 않은 메소드가 " .NET이 수행하는 반 포장되지 않은 작업은 매개 변수를 언랩하지만 응답은 수행하지 않습니다.

bareMethods param을 wsdl2java 명령 줄에 전달하여 베어 모드를 사용할 수 있습니다 (최근 버전의 CXF)

+0

또한 세미 프리 슬레이핑 된 메서드가 없다고 말하기 때문에 .net 예제를 업데이트했습니다. – javaNoober

+0

문제가 발생했습니다. 샘플 버전은 2.2.3이고, 당신의 JIRA 티켓을 찾을 때까지 2.4.2가있었습니다. 감사. – javaNoober