apache CXF をプログラムで使用して、つまり .war ファイルとしてデプロイせずに、POJO を Web サービスとして公開できる組み込みの Jetty または Tomcat を備えたサーバーを作成する必要があります。これは CXF で可能ですか?
ありがとう。
apache CXF をプログラムで使用して、つまり .war ファイルとしてデプロイせずに、POJO を Web サービスとして公開できる組み込みの Jetty または Tomcat を備えたサーバーを作成する必要があります。これは CXF で可能ですか?
ありがとう。
Javaには、使用できる組み込みサーバーが付属しています。POJO にアノテーションを付けるだけで十分で@WebService
あり、追加のパッケージ化は必要ありません。Web サービスのインスタンスを作成し、以下を使用してデプロイするだけですEndpoint.publish()
。
YourPojo service = new YourPojo(); // the class annotated with @WebService
Endpoint.publish("http://localhost:2000/serviceAddress", service);
組み込みサーバーは、単純なシナリオでは問題ありませんが、任意の負荷の下でスケーリングされることに注意してください。
このサービスで CXF を使用する場合は、CXF ライブラリをそのビルドパスに配置するだけです。展開メカニズムであるEndpoint
クラスは、まったく同じままです。この例を説明するCXFのチュートリアルを次に示します。CXF は自動的にデフォルト サーバーを Jetty に置き換えているようです。少なくともこれは、CXF が起動時にコンソールに出力するものです。
Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.Server doStart
INFO: jetty-8.1.7.v20120910
Jun 24, 2013 1:36:29 PM org.eclipse.jetty.server.AbstractConnector doStart
INFO: Started SelectChannelConnector@localhost:2000