2017-10-12 87 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> 

正如你所看到的 - 在一個服務中有兩個端口。但wsimport的源代後,當我打開我的服務的WSDL(http://localhost/myapp/SomeService?wsdl)我只能看到這些端口中的一個:

<?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> 
相關問題