Tôi đang phát triển WebService với JAX-WS (tôi đang sử dụng mục tiêu wsimport trên jaxws-maven-plugin). Tôi đã viết một WSDL nhập khẩu một lược đồ XSD.lược đồ xsd không được trình bày bởi wsdl
WEB-INF/wsdl/service.wsdl
WEB-INF/wsdl/service.xsd
Tôi cũng tạo các lớp dịch vụ web và điểm cuối được tạo và tất cả. Tất cả mọi thứ đã làm việc tuyệt vời cho đến nay. Khi tôi chạy dịch vụ của tôi trên tất cả mọi thứ Tomcat 7 là ok. Tôi có thể truy cập vào một wsdl trong trình duyệt của tôi từ:
http://localhost:8080/webService/servlet-url?wsdl
nhưng tôi không thể có được quyền truy cập vào một giản đồ XSD. Vấn đề nằm trong wsdl này:
<xsd:schema>
<xsd:import namespace="http://ws.service/domain/1.0" schemaLocation="service.xsd"/>
</xsd:schema>
Tất nhiên trong quá trình tạo lớp wsdl và xsd trên đường dẫn cục bộ nhưng tôi muốn chúng có thể truy cập từ xa khi dịch vụ web đang chạy. Tôi biết rằng schemaLocation nên là một cái gì đó như thế này "http: // localhost: 8080/webService/servlet-url? Xsd = 1".
Trong wsdl trình bày trong nhập khẩu trình duyệt schould trông giống như:
<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 mang lại cho tôi:
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>
và vân vân ...
Tôi thực sự không nhớ những gì tôi đã làm ... có thể chuyển sang hợp đồng cuối cùng nhưng cảm ơn bạn đã giải quyết nó. Tôi hy vọng nó sẽ giúp ai đó một ngày nào đó;) – bemol