4

私はc#でコーディングされたWebサービスを持っています。Javaアプリで使用したいので、次のパラメーターを使用してwsimportでインポートしようとしています。

wsimport -keep -verbose -B-XautoNameResolution http://localhost:50358/WebService.asmx?wsdl

私のWebサービスにはこのようなクラスがあります:

 public class ReturnClass
{
    int _returnCode;
    DataTable _outputDataDT;


    public int ReturnCode { set { _returnCode = value; } get { return _returnCode; } }
    public DataTable OutputDataDT { set { _outputDataDT = value; } get { return _outputDataDT; } }

}

Datatable変数を使用すると、wsimportは次のエラーを返します:

[エラー]プロパティ「Any」はすでに定義されています。<jaxb:property>を使用して、この競合を解決します。の16行目http://localhost:50358/WebService.asmx?wsdl

[エラー]次の場所は、上記のエラー行17に関連しています。http://localhost:50358/WebService.asmx?wsdl

しかし、datatable変数を削除すると機能しますが、datatableが必要です。

どうすればこれを修正できますか?

4

3 に答える 3

0

スキーマを見てください。JAXBは同じ名前の2つのプロパティを確認しており、生成されたJavaコードのフィールドを何と呼ぶか​​を理解するのに問題があります。外部カスタムバインディングファイルを作成する必要があります。詳細については、http://docs.oracle.com/javase/tutorial/jaxb/intro/custom.htmlを参照しください。wsimportコマンドには、バインディングファイルを指定するために使用できる-bオプションがあります。

于 2012-07-03T00:40:27.493 に答える
0

wsdlを投稿します。

また、タイプ/要素の名前の衝突である可能性があります。その場合は、次を使用するだけで解決できます。

<nameXmlTransform>
  [ <typeName [ suffix="suffix" ]
              [ prefix="prefix" ] /> ]
  [ <elementName [ suffix="suffix" ]
                 [ prefix="prefix" ] /> ]
  [ <modelGroupName [ suffix="suffix" ]
                    [ prefix="prefix" ] /> ]
  [ <anonymousTypeName [ suffix="suffix" ]
                       [ prefix="prefix" ] /> ]
</nameXmlTransform> 

http://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/JAXBUsing4.html#wp148550

于 2012-07-03T00:47:52.623 に答える
0

すべてのDatatablesを削除し、Datatableの代わりにList<>を使用しました

于 2012-08-01T14:23:55.523 に答える