7

Java アプリケーションで使用しようとしている .NET によって生成された wsdl があります。これを行うために、CXF Wsdl2Java ツールを使用しようとしています。問題は、ツールの実行時に jaxb 例外がスローされることです。

Thrown by JAXB: Two declarations cause a collision in the ObjectFactory class.

ビルド時にオブジェクトの名前を変更するには、おそらくカスタム バインディング ファイルを作成する必要があることは理解していますが、どこから始めればよいかわかりません。wsdl 内のどのオブジェクトが問題を引き起こしているかを調べるにはどうすればよいですか?

(例外が実際にどの要素が名前の競合を引き起こしているかを示していればいいようです)

4

2 に答える 2

1

これはうまくいくかもしれません:

  1. -autoNameResolutionコマンドライン引数で名前の競合を解決するようにcxfに指示します
  2. jaxb:globalBindings underscoreBinding="asCharInWord" でアンダースコアを削除しないように jaxb に指示します。
于 2012-09-25T11:01:00.630 に答える
0

上記に加えて、CXF の wsdl2java ツールの最新バージョンを使用していることを確認してください。最新バージョンでは、JAXB がこれらのタイプのエラーを検出している行/列番号を取得しようとする作業が改善されています。少なくとも、どこを見ればよいかの基本的な指標を示すことはできますが、追跡するのは簡単ではありません。

于 2012-09-25T18:02:22.970 に答える