私はJAX-WSを使用してWebServiceを開発しています(jaxws-maven-pluginでwsimportゴールを使用しています)。XSDスキーマをインポートするWSDLを作成しました。
WEB-INF/wsdl/service.wsdl
WEB-INF/wsdl/service.xsd
また、Webサービスクラスを生成し、エンドポイントとすべてを作成しました。これまでのところ、すべてがうまく機能しました。Tomcat 7でサービスを実行したときは、すべて問題ありません。ブラウザで次の場所からwsdlにアクセスできます。
http://localhost:8080/webService/servlet-url?wsdl
しかし、xsdスキーマにアクセスできません。問題はこのwsdlにあります:
<xsd:schema>
<xsd:import namespace="http://ws.service/domain/1.0" schemaLocation="service.xsd"/>
</xsd:schema>
もちろん、クラスの生成中、wsdlとxsdはローカルパス上にありますが、Webサービスの実行中にリモートでアクセスできるようにしたいです。schemaLocationは「http:// localhost:8080 / webService / servlet-url?xsd=1」のようなものでなければならないことを知っています。
ブラウザに表示されるwsdlでは、インポートは次のようになります。
<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は私に:
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>
等々...