質問

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 です。

Metro 1.5は、2.1 SPCESをバンドルした最後のビルドであり、その仕様の最新のRIS、つまりMetro 1.5にはJAXWSとJAXB API @ 2.1とJAXWS RI @ 2.1.7とJAXB RI @ 2.1.13が含まれています。

Metro 2.0以降、JAXBとJAXWS API v2.2とリリースデータの最新のRIをバンドルします。 例えば最新のメトロリリース2.2バンドルJAXB RI 2.2.5とJAXWS RI 2.2.6。

しかし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

SO任意のメトロリリース2.0以上では、$ java_home / jre / lib / endored / endoredまたは-djava.ndoredを使用するか、jax-ws-api.jarファイルとjaxb-api.jarファイルをコピーする必要があります。 .dirsシステムプロパティ

そして何人かの楽しみ、MetroはJAX-WS、JAXBプロジェクト(その他の中に)を含む傘プロジェクトではなく、これらのプロジェクトからUber JARを作成します。

so.metroのwebservices-api.jarには、jaxws-api.jar、jaxb-api.jar(ri)+ APIがwsit、JAX-WS-Commonsなどのようなプロジェクトなどが含まれています。

とwebservices-rt.jarには、jaxws-rt.jar、jaxb-rt.jar、wsit、JAX-WS-Commonsなどのような他の子供のRT JARが含まれています。

so up -

JAXWS / JAXB v2.1仕様に対してWSを開発したい場合は、単にJDK 6を使用してください(U04を過去の更新)。 最新のAPI + RISバージョンの2.1スペックを絶対に使用したい場合は、JAXWSとJAXBの最後の2.1.xリリースジャーを使用してください。すなわち、JAXWS / JAXB / wsit / wsitをバンドルするときに、JAX-WS 2.1.7とJAXB 2.1.13、JAX-WS 2.1.7とJAXB 2.1.13を使用します。 。]

最新のJAXWS / JAXB v2.2の仕様に対してWSを開発したい場合は、JAX-WS v2.2.6とJAXB Ver 2.2.5 JARを使用する必要があります[メトロ2.2のWebサービスを使用する] -api.jarとwebservices-rt.jarがJAXWS / JAXB / WSITをバンドルします。 しかし、JDKが含まれているJAXWS / JAXB V2.1 JARをオーバーライドするために、上記のように承認されたJARメカニズムを使用する必要があります。

私の勧告 - v2.1がMetro 1.5 JAR(WebServices-API、WebServices-RT)を使用してOKの場合 V2.2が必要な場合は、Metro 2.2 JAR(WebServices-API、WebServices-RT)を使用し、承認されたDIRにWebServices-API.jarを置くことを確認します。

Metro Jars(WebServices - [API]、RT)が必要な場合は、JDKのバンドルjars、またはその問題の場合はJAXWS-RI.JARなどのものを使用する場合、そしてjaxb-ri.jarはあなたにそれらの機能を与えないでしょう。

このかなり長いメールがいくつかのことをクリアするのに役立っていたことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top