2009-04-10 5 views
4

JAX-WSアノテーションを使用してWebサービスメソッドを公開しようとしています。サーブレット+ JAX-WS

public class TimeServerPublisher { 
public static void main(String[ ] args) { 
    // 1st argument is the publication URL 
    // 2nd argument is an SIB instance 
    Endpoint.publish("http://127.0.0.1:9876/ts", new TimeServerImpl()); 
} 

}

:私が見た多くの例がすぐにスタンドアロンのアプリでのサービス(:アップと実行、第1版Java WebサービスからEX)を立ってEndPoint.publish()メソッドを参照します

私が欠けていることの1つは、本質的に同じことを達成する方法ですが、既存のアプリでは実現します。私はこれを処理するためのサーブレットを作成しますか?既存のWARファイルにこのサービスを公開する適切な方法は何ですか?

答えて

3

コンテナでは、このようにパブリッシュする必要はありません。コンテナはパブリッシュを行います。 JBossサーバーで使用する予定がある場合は、JBossWSをTomcatやその他のサーバー用に試してみてください。Axis2を使用する方が良いかもしれません。

続きを読む

http://jbossws.jboss.org/mediawiki/index.php?title=JBossWS

http://ws.apache.org/axis2/

+1

またはCXF:http://cwiki.apache.org/CXF20DOC/servlet-transport.html –

+0

ええ、私はCXFを逃しました:-) –

1

@Jerrishと@andriのコメント欄には、あなたの懸念に応じて、さまざまな解決法と解決策があります。

Webサービスの公開時に設定(ポートなど)を設定する必要はありません。最適なアプローチは、設定ファイル(XML、プロパティなど)または@Annotationsを使用してこれを設定することです。

たとえば、GuiceやSpringのようなフレームワークの使用に慣れている場合、アプリケーションの公開やオブジェクト、工場、データソースの初期化などのコンテキストを開始したり、Webサービスを公開することは可能ですあなたのアプリケーションを起動するときに利用できるので、この時点で実行できるタスクはありませんか?

ちなみに、私はCXFで良い経験をしており、もう1つの解決策はSpring Web Services Webサービスを作成するためのもう1つの強力なソリューションです。

関連する問題