2009-09-04 7 views
3

具体的には、JBoss 4.2.2のjavax.jws.WebService.wsdlLocationを使用できますか? (これは、WebサービスとしてデプロイされたEJB3 Bean用です)。jbossでのjavax.jws.WebService.wsdlの配置4.2.2

サポートされていますが、書式は正確には何ですか?私はhttpを試した、私は相対URLを試してみました。 JBossはそれをどのように見ていますか、URL、EJBのクラスパス上の何か、その他何か?

答えて

1

JBWS-2206と関連する問題JBWS-1714JBWS-1837をご覧ください。

私が収集できる情報から、JBossは内部的にJAX-WSのMetro(RI)を使用します。私はこれについてはあまりよく分かりませんが、wsdllocation属性を使用してクラスローダーを使用してMetroがWSDLを読み取ると、WSDLを配置するためのEJB JARのMETA-INF/wsdlが安全な選択となります。 The example file in JBWS-2206は参考になります。

更新

how to provide your own WSDL is present in the JBoss forumsを徹底的に概観。

更新#2

JAX-WS仕様では、このようなケースである理由について、より良いアイデアを提供します。 @WebService(のwsdlLocation)とメタデータのセクション5.2.5.3使用時に、一方が

エンドポイント実装クラスでのwsdlLocationアノテーション要素の値は、もしあれば、 相対的である必要があるという仕様を見つけることができURL。それが指し示す文書は、アプリケーションと共にパッケージ化されなければならない(MUST)。さらに、下記のセクション5.2.5.4(以下「アプリケーション指定サービス」)の要件に従うことが必要です( )。

さらに、それは

は、JAX-WS実装は、すべてのWSDLの場所の属性にパッチを適用しなければならないと述べている:インポートおよびxsd:ローカルドキュメントを指すローカル文書にインポート 文を。実装は、 他のロケーション属性にパッチを当ててはならない(MUST NOT)。

生成されたWSDLの表示方法を定義します。

+0

EJB3の場合、JBWS-2206へのリンクがトリックを行いました。あなたがMETA-INFを参照しなければならないのはむしろ驚きですが、それは私が推測していなかった隠された秘密でした。 – Yishai

+0

さて、JAX-WSには一目瞭然ではないことがたくさんあります。同様のケースが発生した場合は、JAX-WS 2.0/2.1仕様のコピーをダウンロードしてください。 –

+0

ちなみに、この場合、JAX-WS 2.0仕様では - **エンドポイント実装クラスのwsdlLocationアノテーション要素の値は、もしあれば、相対URLでなければなりません。それが指し示す文書は、アプリケーションと共にパッケージ化されなければならない(MUST)。さらに、以下のセクション5.2.5.4の要件に従わなければなりません。( "アプリケーション指定サービス")** –

関連する問題