2014-09-12 12 views
0

제가 일하는 회사는 우리 소프트웨어의 외부 공급 업체와 협력합니다. 나는 공급 업체 웹 서비스와 통신하기 위해 첫 번째 Windows 서비스를 만드는 작업을 맡았습니다. 공급 업체가 WSDL 및 39 개의 XSD 파일의 사본을 제공했습니다. XSD 파일을 문제없이 클래스 파일로 변환합니다. 나는 WSDL을 변환 할 때, 나는 다음과 같은 오류를 얻을 : 내가 본 svcutil.exe에프록시 생성 중 WSDL의 에러가 발생했습니다.

Error: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Schema with target namespace ' http://tempuri.org/ ' could not be found.

XPath to Error Source:

//wsdl:definitions[@targetNamespace=' http://tempuri.org ']/wsdl:portType[@name='ITrakManService'] Error: Cannot import wsdl:binding Detail: There was an error importing a wsdl:portType that the wsdl:binding is dependent on. XPath to wsdl:portType: //wsdl:definitions[@targetNamespace=' http://tempuri.org/ ']/wsdl:portType[@name='ITrakManService']

XPath to Error Source:

//wsdl:definitions[@targetNamespace=' http://tempuri.org/ ']/wsdl:binding[@name='BasicHttpBinding_ITrakManService']

Generating files... Warning: No code was generated. If you were trying to generate a client, this could be because the metadata documents did not contain any valid contracts or services or because all contracts/services were discovered to exist in reference assemblies. Verify that you passed all the metadata documents to the tool.

를 사용하는 경우

하는 wsdl.exe

Error: Unable to import binding 'BasicHttpBinding_ITrakManService' from namespace ' http://tempuri.org/ '. - Unable to import operation 'AddRedactedDocument'. - The element ' http://tempuri.org/:AddRedactedDocument ' is missing.

를 사용하는 경우 몇 사람이 wsdl의 imports 섹션을 includes로 변경하는 것을 참조하지만, 가져 오기의 어느 것도 명시적인 XSD를 참조하지는 않습니다. 참고로 이것은 가져 오기 섹션입니다.

-<wsdl:types> 
-<xsd:schema targetNamespace="http://tempuri.org/Imports"> 
<xsd:import namespace="http://tempuri.org/" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd0"/> 
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd1"/> 
<xsd:import namespace="http://schemas.datacontract.org/2004/07/TrakManBusiness" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd2"/> 
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" schemaLocation="http://vcp01xred-grd.clerkdev.clerk.local:8090/TrakManWebService.svc?xsd=xsd3"/> 
</xsd:schema> 
</wsdl:types> 

죄송합니다. 귀하가 WSDL 전문가에게 바보 같은 질문 인 경우,이를 시도해 보았습니다. 또한 WSDL과 동일한 디렉토리에있는 XSD 파일로이 작업을 시도했지만 오류는 동일했습니다.

답변

0

xsds가 여러 개있는 경우 wsdl에서 java 로의 변환 (또는 다른 오류)이 여러 번 발생했습니다. 나에게 도움이되는 한 가지 해결책은 모든 XSD를 하나의 XSD에 결합한 다음 WSDL을 작성하는 것인데, 매우 힘든 일이지만 작동 할 수 있습니다. 순환 수입과 수입이 더 많을 경우 수입에 실패합니다.