我有一个关于使用多个端口从wsdl进行Web服务的问题。 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: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>
有没有人有任何想法如何使用多个端口?
答案 0 :(得分: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>