10

ワークスペースを RAD に公開しようとすると、「2 つのクラスに同じ xml タイプ名があります」というエラーが表示されます。おそらく、同じクラス名が同じパッケージに存在するが、2 つの異なる jar に存在するためです。そして、 @XmlType アノテーションは、これらのクラスのソースでその属性名と名前空間に個別の値を持つ必要があるようです。Apache CXF で利用可能な wsdl2java を試しましたが、この名前空間属性を生成させることができません。-p パッケージ オプションをいじってみましたが、それは生成されたソースを指定したパッケージに配置するためだけのものです。

wsdlで発生した各要素に対してこの名前空間属性を生成する方法はありますか? ティア。

4

2 に答える 2

13

ダニエルのアンサーに感謝します:

CXF JAXB JAXBEncoderDecoderアンマーシャリングエラー:修飾された要素がある場合の予期しない要素

wsdl2java のパラメーター -xjc-npa があることを知り、これが役に立ちました。これにより、生成されたクラスに XmlType.name および XmlType.namespace アノテーションが追加されるため、クラス名が同じでも名前空間が異なる場合でも問題ありません。

于 2011-06-03T07:35:50.250 に答える
1

「submitData」という名前の Web サービス メソッドからの戻りオブジェクトとして使用していた「SubmitDataResponse」という名前のオブジェクトで、これに遭遇しました。オブジェクトの名前を変更しようとすると、エラーはなくなりました。CXF がメソッド名 (この場合は submitData() -> "SubmitDataResponse") に基づいて独自の戻りオブジェクトを作成しているように思えます。クラスの名前を変更して、同じ問題が発生しているかどうかを確認してください。おそらく、誰かが私たちのクラスの名前を私たちが望む方法で維持する方法に協力することができます (おそらく何らかの注釈を付けて)。

これが役立つことを願っています。

于 2011-03-21T20:45:18.657 に答える