5

パラメータとして使用されるBeanのXMLスキーマ(* .XSD)がすでにある、いくつかのWebサービス(サーバーサービス定義から)のWSDLファイルを生成します。java2wsにこれら(外部XSDを含む)を参照し、WSDLに独自のものを生成しないように指示するにはどうすればよいですか?

-createxsdimportsを試しましたが、独自のXSDファイルが生成されます。

各ファイル/パッケージのXSDがどこにあるかをCXFに知らせるために使用できるJavaアノテーションはありますか?

4

2 に答える 2

4

@XmlSchema注釈を試してください。これにはlocation、実際のスキーマが存在することをJAXBに通知するために使用されるパラメーターが含まれています。

@XmlSchema(location="http://www.example.com/xsds/foo.xsd")
package com.example.foo;
于 2011-07-14T20:48:20.707 に答える
2

外部スキーマファイルをインポートするCXFWebサービスがあります。私がそれを作ったとき; 私はあなたが達成しようとしている正確なシナリオを整理するためにかなりの時間を費やしました。残念ながら、JavaからWSDLを生成する場合、CXFは@XmlSchema(location = "")アノテーションを尊重しないようです。当時、CXFのメイン開発者であるDaniel Kulpは、これは既知の問題であると言っていましたが、十分な数の人が不満を言っていないため、修正する優先順位のリストの上位にはありません。

そのため、WSDLを手動で記述し、WSDLファイルからSEIを生成することになりました。もちろん、WSDLを手書きすれば、好きなことを行うことができます。

これの副作用の1つは、HTTP GETによって外部スキーマファイルにアクセスできる必要があることです。SEIの生成中とWebサービスアプリの起動時の両方で、CXFは起動時にスキーマファイルを取得します。もちろん、クライアントを生成するときにも同じことが言えます。これにより、アーキテクチャの依存関係が少し乱雑になります。しかし、CXF「myschema.xsd」がhttp://myurl.com/myschema.xsdで入手可能であるが、/ src / main / schema/myschema.xsdでも入手可能であることを伝える方法はないようです。

于 2013-04-29T15:38:21.760 に答える