JDK6:バンドルJAX-WS実装とプロジェクトメトロを使用する場合
-
09-12-2019 - |
質問
JDK6にバンドルされているJAX-WS実装は、追加のライブラリなしでWebサービスサーバーを提供するために使用できます。JVMは指定されたポート上のWSサーバーから始まります。
http://java.sun.com/developer/technicalarticles/j2se/jax_ws_2/
http://java.sun.com/developer/technicalarticles/j2se/jax_ws_2_pt2/
私が持っている質問は、プロジェクトメトロとどのように異なりますか?最終目標がTomcat内のWebサービスをホストすることである場合は、まだバンドルされた機能を使用してから、このバンドルWSサーバーにリダイレクトするだけです。
解決
JAX-WSは、JDK6またはメトロ実装で実装する必要があるテンプレートのみです。
メトロは、GlassFishアプリケーションサーバーに同梱されている標準的な実装です。こちらを参照してください
他のヒント
あなたがメトロについて知らなければならない最初のことは、それがさまざまなWS関連のプロジェクトのための傘プロジェクトであるということです。 JAX-WS、JAXB、WSIT、JAX-WSコモンズなど。
これらの各コンポーネントには、2つの部分、API(SPEC)と実装部分が参照実装として呼び出されます(RI)。 スペックは 'javax.xml.ws'、 'javax.xml.bind'などで定義されています。riは 'com.sun.xxx'パッケージに入ります。
JDK 6の周囲のどこかで、Update 4、Sun / OracleはJDK IT自己にこれらのAPI + RISをバンドルし始め、これらをJDKに更新して更新してください。
最後のJDK 6 Update31の時点で、JDKには、次のJAXWSとJAXB APIの検証、およびRI が含まれています。
JDK6 U31 - JAXB API @ 2.1&RI @ 2.1.10、JAXWS API @ 2.1およびRI @ 2.1.6
http://jaxb.java.net と http://jax-ws.java.net ページ、そして2.1.xの下の最後のリリースを参照してください、あなたはJAXB RIが2.1.13であり、JAXWS RIが2.1であることがわかります。 .7、すなわち、最新のJDK 6アップデートにバンドルされている2.1宇宙のRI実装は、メトロでリリースされたものの背後にあるいくつかのバージョンです。 そのため、最新の2.1 JARを使用するには、ここで説明されているように、API + RI JARをクラスパスにコピーするだけです。 http://jax-ws.java.net/2.1.7/docs/releasenotes.html#running_on_top_of_jdk_6
問題をより混乱させるために、メトロ傘プロジェクトには独自のバージョン番号があります。これは今日の現在、1.5,2.0,2.0.1,2,2.1.1,2.2 です。
しかしJAXWSとJAXB(APIS + RI)には、CATCH、JDK 6バンドルV2.1があり、単にJAXWSを使用すると、クラスパス内のJAXB v2.2 JARは機能しません。ここで説明されているように、承認されたJARメカニズムを使用する必要があります。 http://jax- ws.java.net/2.2.3/docs/releasenotes.html#running_on_top_of_jdk_6
そして何人かの楽しみ、MetroはJAX-WS、JAXBプロジェクト(その他の中に)を含む傘プロジェクトではなく、これらのプロジェクトからUber JARを作成します。
とwebservices-rt.jarには、jaxws-rt.jar、jaxb-rt.jar、wsit、JAX-WS-Commonsなどのような他の子供のRT JARが含まれています。