Estoy desarrollando WebService con JAX-WS (estoy usando el objetivo wsimport en jaxws-maven-plugin). Escribí un WSDL que importa un esquema XSD.esquema xsd no presentado por wsdl
WEB-INF/wsdl/service.wsdl
WEB-INF/wsdl/service.xsd
También genere clases de servicio web y extremo creado y todo. Todo funcionó muy bien hasta ahora. Cuando ejecuté mi servicio en Tomcat 7, todo está bien. Puedo tener acceso a un WSDL en mi navegador de:
http://localhost:8080/webService/servlet-url?wsdl
pero no puedo acceder a un esquema XSD. El problema es que en este WSDL:
<xsd:schema>
<xsd:import namespace="http://ws.service/domain/1.0" schemaLocation="service.xsd"/>
</xsd:schema>
Por supuesto, durante la generación de las clases WSDL y XSD son en ruta local pero quiero que sean accesibles de forma remota cuando el servicio Web se está ejecutando. Sé que schemaLocation debería ser algo así como "http: // localhost: 8080/webService/servlet-url? Xsd = 1".
En WSDL presentado en la importación navegador schould aspecto:
<xsd:schema>
<xsd:import namespace="http://ws.service/domain/1.0" schemaLocation="http://localhost:8080/webService/servlet-url?wsdl&resource=service.xsd"/>
</xsd:schema>
localhost: 8080/webService/servlet WSDL me da:?
wsdl:definitions targetNamespace="http://ws.serv.com/Service/1.0" name="emuiaService">
<wsdl:types>
<xsd:schema>
<xsd:import namespace="http://ws.serv.com/Service/domain/1.0" schemaLocation="schema.xsd"/>
</xsd:schema>
</wsdl:types>
<wsdl:message name="halloMsg">
<wsdl:part name="parameters" element="dom:halloRequest"/>
</wsdl:message>
<wsdl:message name="halloResponseMsg">
<wsdl:part name="return" element="dom:halloResponse"/>
</wsdl:message>
y así sucesivamente ...
Realmente no recuerdo lo que hice ... probablemente cambié al último contrato, pero gracias por resolverlo. Espero que ayude a alguien algún día;) – bemol