2013-03-18 3 views
3

StackService을 사용하여 .NET 응용 프로그램에서 생성 한 wsdl 문서가 있습니다. 생성 된 Java 클래스를 얻기 위해 Apache CXF을 사용하고 있습니다.wsdl2java를 사용하여 wsdl에서 Java 클래스를 생성 할 수 없습니다.

D : \ somepath는> WSDL2Java의 -dd : \ 온도가 http://mywsdl.com

결과는 다음과 같다 :

WSDLToJava 오류 :

나는 다음과 같은 명령 (창)을 실행하는거야

요약 : 실패 : 50, 경고 : 0

< < < 오류! 메시지 <에서

부 {http://schemas.servicestack.net/types} CadastroUsuarioOut> 참조 유형 < {http://schemas.servicestack.net/types} CadastroUsuarioResponse> 스키마 메시지에

부분에서 찾을 수 없습니다 < {http://schemas.servicestack.net/types} ContratoImovelIn> 참조 유형 < {http://schemas.servicestack.net/types } ContratoImove> 스키마에서 찾을 수 없습니다.

더 자세히 다음과 같은 부품 오류 메시지

WSDL이 자동 생성되어 다른 시스템에서 성공적으로 소비됩니다.

모든 ideias?

감사합니다.

+0

, 첫 번째 단계는이 즉, WSDL은 참조 않습니다, 사실 여부를 확인 할 것 일부 XML 스키마 (* .xsd 파일)? wsdl2java에서 사용할 수 있습니까? 누락 된 유형 정의가 포함되어 있습니까? – meriton

답변

1

wsdl의 '유형'섹션을 확인하십시오. 'types'섹션은 SOAP 메시지에서 데이터를 교환하는 데 사용되는 다양한 xml 유형을 정의합니다. 당신의 WSDL에 대한 '유형'섹션이 유효하고 서비스에 의해 사용되는 모든 데이터 유형을 정의하는 경우

http://heasarc.gsfc.nasa.gov/itwg/wsdl_all.html

가 확인 - 샘플 WSDL 파일을 확인 .

오류를 보면 'CadastroUsuarioResponse'와 'ContratoImovel'이 'types'정의에 없습니다.

+0

유형 섹션은 괜찮습니다. 어쨌든 감사합니다. – Androiderson

2

나는 (물론 다른 WSDL와) 같은 오류 메시지가 있는데 내가 < XSD가 있습니다 참조 : < WSDL 수입의 : 유형들.

내 문제에 대한 해결책은 < XSD에 의 schemaLocation을 추가했다 : 수입의.

예 오래된

<xsd:import namespace="http://schemas.servicestack.net/types"/> 

예 새가 유형이 스키마에 정의되지 않은 말한다 때문에

<xsd:import namespace="http://schemas.servicestack.net/types" schemaLocation="types.xsd" /> 
+0

이 솔루션은 나를 위해 일했습니다. 고맙습니다. 하지만 왜 WSDL에 schemaLocation으로 정의 된 스키마 위치가 필요하다고 생각합니까? WSDL과 동일한 디렉토리에있는 XSD가 충분하지 않은 이유는 무엇입니까? –