JAX-WS:两个或多个端点作为一个Service和WSDL的端口

时间:2015-03-03 06:39:52

标签: web-services binding wsdl jax-ws endpoint

是否可以将两个或更多JAX-WS端点作为WSDL发布:单个WSDL下的端口:服务以使用具有以下内容的单个wsdl?

<definitions ...>
    ...
    <service name="Airport">
        <port name="Cargo" binding="tns:CargoBinding">
            <soap:address location="http://localhost:9999/"/>
        </port>
        <port name="Civil" binding="tns:CivilBinding">
            <soap:address location="http://localhost:9999/"/>
        </port>        
    </service>
</definitions>

这个想法是将两个逻辑上相似的服务合并在一个服务之下。我想知道如何使用Endpoint.publish实现这一目标?

1 个答案:

答案 0 :(得分:0)

是。在WSDL定义中,service是相关端点的集合,端点必须具有由URI标识的唯一地址。在您的代码中,两个端点&#39;地址相同。

您必须多次为不同的端口端点调用Endpoint.publish。 作为您的WSDL定义,

Cargo cargo = new CargoImpl(); // Cargo is endpoint interface
Endpoint.publish("http://hostname/service/cargo", cargo);
Civil civil = new CivilImpl();
Endpoint.publish("http://hostname/service/civil", civil);