1

我已将 JAX-WS Web 服务部署到嵌入式 Jetty 服务器中我需要更改与端点关联的 IP 地址

为了发布我做:

Service service = new Service();

Endpoint.publish(address, service);

发生的情况是,当我停止并重新启动服务器时,服务再次发布并绑定到我提供的新地址,但我收到如下警告:

WARNING: "GMBAL901: JMX exception on registration of MBean MBeanImpl[type=WSEndpoint,name=MyServiceService-myservice_servicePort,oname=com.sun.metro:pp=/,type=WSEndpoint,name=MyServiceService-myservice_servicePort]"

如果我同时查询旧地址(例如 127.0.0.1)和新地址(例如 192.168.XX),它们都仍在回答(使用 myService 的两个不同实例。我不会有这种行为,我希望 WS 不受约束旧地址。

我能怎么做?

4

1 回答 1

3

发现我只需要创建 EndpointObject,发布它,当我需要重新启动时足以停止 ep(它将确保不会重新发布相同的 ep),而不是创建一个新的并重新发布它。

Endpoint ep;
...
if (ep != null && ep.isPublished()){
        ep.stop();
}

ep = Endpoint.create(service);
ep.publish(getEndpointAddress(port, service));

直到最好等待半秒钟,然后重新启动发布 WS 的服务器,因为它有时会卡住

于 2012-06-15T08:59:51.987 回答