2017-10-12 2 views
0

wsdlから複数のポートを使用してWebサービスを作成する方法について質問があります。 WSDLは次のようになります。WSDL内の複数のポートを使用したWebサービスの作成

<?xml version="1.0" encoding="utf-8"?> 
<wsdl:definitions ...> 
... 
    <wsdl:service name="SomeService"> 
     <wsdl:port name="port1" binding="tns:port1"> 
      <soap:address location="http://example.com/port1"/> 
     </wsdl:port> 
     <wsdl:port name="port2" binding="tns:port2"> 
      <soap:address location="http://example.com/port2"/> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

ご覧のとおり、1つのサービスに2つのポートがあります。しかし、私は私のサービスのWSDL(http://localhost/myapp/SomeService?wsdl)を開いたときにwsimportのソース生成した後、私はこれらのポートのいずれか一方のみを参照してください。

<?xml version="1.0" encoding="utf-8"?> 
<wsdl:definitions ...> 
... 
    <wsdl:service name="SomeService"> 
     <wsdl:port name="port1" binding="tns:port1"> 
      <soap:address location="http://example.com/port1"/> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

誰もが複数のポートでそれを作るためにどのように任意のアイデアを持っていますか?

答えて

1

最後に私の答えはthereです。私のプロジェクトにsun-jaxws.xmlファイルを追加しました。

<?xml version="1.0" encoding="UTF-8"?> 
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> 
<endpoint 
    name="port1" 
    implementation="my.package.port1class" 
    interface="my.package.port1interface" 
    wsdl="WEB-INF/wsdl/wsdl.xml" 
    service="{http://localhost.com/}Service" 
    port="{http://localhost.com/}port1" 
    url-pattern="/service"/> 
<endpoint 
    name="port2" 
    implementation="my.package.port2class" 
    interface="my.package.port2interface" 
    wsdl="WEB-INF/wsdl/wsdl.xml" 
    service="{http://localhost.com/}Service" 
    port="{http://localhost.com/}port2" 
    url-pattern="/service"/> 
</endpoints> 
関連する問題