2

I am trying to publish a SOAP service registered in the Governance Registry through a proxy in WSO2 ESB. I get an error saving the proxy due to an incorrect schema location of the resources referenced in the WSDL.

In particular I get:

Caused by: javax.wsdl.WSDLException: WSDLException (at /wsdl:definitions/wsdl:types/xsd:schema): faultCode=PARSER_ERROR: Problem parsing '../../../../schemas/org/tempuri/1.0.0/TestSoap1.xsd'.: java.io.FileNotFoundException: /../schemas/org/tempuri/1.0.0/TestSoap1.xsd (No such file or directory)

When I search the WSDL in the Governance Registry the imported schemas have a location pointing to a relative path using "../../../{xsd name}", obviously the cause of the error. The solution seems to be to remap all the schemas locations to the registry internal keys (aka gov:/trunk/... and so on).

This behaviour does not make sense for me. The integration between ESB and GREG should be useful to use previously GREG imported WSDL when creating proxies. Am I missing something?

Community
  • 1
  • 1
Giulio V.
  • 180
  • 8

1 Answers1

0

When you select a registry resource with dependencies, you need to specify them within the proxy service you are building. In the following example I show you the configuration that you need to perform in a proxy based on a WSDL that has an XSD as a dependency, and both are registered in the GREG.

<publishWSDL key="gov:/trunk/wsdls/org/example/www/util/auditoria/1.0.0/Auditoria.wsdl">
      <resource key="gov:/trunk/schemas/org/example/www/util/auditoria/1.0.0/Auditoria.xsd"
                location="../../../../../../../schemas/org/example/www/util/auditoria/1.0.0/Auditoria.xsd"/>
   </publishWSDL>
Ernesto
  • 266
  • 1
  • 6