5

JAX-WS アノテーションを介して Web サービス メソッドを公開しようとしています。私が見た多くの例では、EndPoint.publish() メソッドを参照して、スタンドアロン アプリでサービスをすばやく立ち上げています (例: Java Web Services: Up and Running, 1st Edition):

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 つは、本質的に同じことを既存のアプリで達成する方法です。これを処理するサーブレットを作成しますか? このサービスを既存の WAR ファイルで公開する適切な方法は何ですか?

4

3 に答える 3

4

コンテナーでは、このように公開する必要はありません。コンテナーが発行を行います。JBoss サーバーで使用する予定がある場合は、JBossWS を試してください。それ以外の場合は、Tomcat またはその他のサーバーで Axis2 を使用することをお勧めします。

以下のリンクから詳細をお読みください。

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

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

于 2009-04-10T18:18:05.140 に答える
3

これは、使用している WS スタックによって異なります。

Java 6 を使用している場合、それにはJAX-WS 参照実装が含まれており、JAX -WS RI WAR の内容に関するドキュメントを参照できます。

于 2009-04-10T18:35:02.900 に答える
1

@Jerrish と @andri がコメントしているように、懸念に応じて、さまざまなアプローチと解決策があります。

背後にある考え方は、Web サービスを公開するときに構成 (ポートなど) を設定する必要がないということです。最善の方法は、構成ファイル (XML、プロパティなど) を介して、または @Annotations を使用してこれを設定することです。

たとえば、Guice や Spring などのフレームワークの使用に慣れている場合は、アプリケーションのコンテキストを開始して、いくつかのオブジェクト、ファクトリ、データソースなどを公開または初期化し、Web サービスを公開することが可能/推奨されることを知っています。アプリケーションを起動するときに使用できるようになるため、この時点で完了ですよね?.

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

于 2011-09-12T23:34:00.510 に答える