1

組み込みのJettyサーバーにJAX-WSWebサービスをデプロイしましたが、エンドポイントに関連付けられている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の2つの異なるインスタンスを使用します。この動作は発生しません。WSがバインドされていないことを確認します。古いアドレス。

どのようにできるのか?

4

1 に答える 1

3

EndpointObjectを作成して公開するだけでよく、再起動する必要がある場合は、新しいepを作成して再公開するよりも、epを停止するだけで十分です(同じepが再公開されないようにします)。

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

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

WSが公開されているサーバーを再起動する前に、0.5秒待ってからスタックすることをお勧めします。

于 2012-06-15T08:59:51.987 に答える