2

名前空間を共有する 5 つの WSDL がありますが、すべてではありません。それらからクライアント コードを生成します (XMLBeans を使用したデータ バインディング)。別々に、それらは正常にコンパイルされます。生成された各クライアント コードから JAR ファイルを作成します。

プロジェクト内のすべての JAR ファイルを使用しようとすると、命名/コンパイルの競合が発生します。

できるだけ再利用したい。これに対処するスマートな方法はありますか (パッケージ構造で各クライアントに独自のノードを与えるのではなく)?

4

1 に答える 1

2

XMLBeans (2.x)のよくある質問には、xsdconfig名前空間マッピングの制限が記載されています。

代替テキスト 注: XMLBeans は、同じ名前とターゲット名前空間を持つスキーマ タイプ/要素にマップされた (異なるパッケージの) Java クラスの 2 つ以上のセットの使用をサポートしません。すべて同じクラス ローダーで使用します。Java クラスからスキーマ型へのマッピングに使用している方向によっては、一部の機能が正しく動作しない場合があります。これは、Java クラスのパッケージ名が異なっていても、スキーマ メタデータ (.xsb ファイル) のスキーマの場所が同じであり、対応する実装 Java クラスが含まれているため、JVM は常にクラスパスの最初のものを取得するためです。 . 複数のクラスローダを使用すると、これを回避できます。

于 2010-07-15T12:29:41.157 に答える