16

Tomcat 7 の WAR ファイルとしてデプロイする JAX-WS Web サービス アプリケーションがあります。これは、WAR ファイル内に含めた最新バージョンの Metro ライブラリを使用しており、正常に動作します。

展開パッケージを簡素化しようとしています。Sun JDK には Metro のコピーが含まれていることを理解しています (たとえば、この質問この質問を参照してください)。私は、Tomcat と JDK に付属する Metro の実装だけでうまくいくかどうか、あるいはそうでない場合は、その理由を理解しようとしています。

WAR の内容は次のとおりです (クラス ファイルは削除されています)。

META-INF/MANIFEST.MF
WEB-INF/classes/
WEB-INF/classes/com/[et cetera]
WEB-INF/ibm-web-ext.xml
WEB-INF/lib/
WEB-INF/lib/stax-api.jar
WEB-INF/lib/webservices-api.jar
WEB-INF/lib/webservices-extra-api.jar
WEB-INF/lib/webservices-extra.jar
WEB-INF/lib/webservices-rt.jar
WEB-INF/lib/webservices-tools.jar
WEB-INF/sun-jaxws.xml
WEB-INF/web.xml
wsdl/
wsdl/MyService.wsdl

web.xml部分的に含まれています:

<servlet>
    <servlet-name>MyService</servlet-name>
    <servlet-class>
        com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>              
</servlet>

webservices-* jar (Metro jar) を WAR から削除すると、Web サービスが失敗し、「 Wrapper はサーブレット クラス com.sun.xml.ws.transport.http.servlet.WSServlet またはクラスを見つけることができません」というエラーが表示されます。による"。Java 7 SE に付属する jar のどこにもそのクラスが見つからないため、これは驚くべきことではありません。

では、このような機能を実現するために別の Metro のコピーをダウンロードする必要がある場合、Java 7 に Metro が付属しているとはどういう意味でしょうか? Java に付属の jar だけを使用して、Tomcat 内で JAX-WS Web サービスを実行することは可能ですか?

4

3 に答える 3

1

古い質問ですが、誰かがまだ答えを探しているなら。JDK 1.7 の時点で jaxws jar を含める必要はありません (正確には 1.7.0_45 を使用しています)。このhttp://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/リンクを使用してサンプル Web サービスを構築し、ステップ 5 をスキップしてすべて動作します。私は Tomcat バージョン 7.0.47 をターゲットにしています。プロジェクト全体は、jaxws-rt jar のデフォルト スコープ (つまり、コンパイル) を持つ Maven でビルドされています。

于 2013-12-31T07:52:54.123 に答える