1

私は C# 開発者ですが、最近、自分のアプリのバージョンを Java で書き直す必要がありました。

C# アプリは、カスタム オブジェクトを送信する WCF ホスト/クライアントと連携します。Java は私の専門ではないので、WCF ホストと通信する機能する Web サービスを作成するのに少し苦労しましたが、なんとかやり遂げることができました。WCF カスタム オブジェクトを解析するプロセスでは、Java がほとんどの作業を行い、すべてのクラスとオブジェクトを作成しているようです。

ただし、Stringカスタム オブジェクトのどのプロパティでも、JAXBElement. この生成されたクラスの他の各プロパティは、「JAXB」プロパティとして作成されたものを除き、XML ファイルに保存されます。

Web を検索すると、次のコードがそのようなプロパティ タイプの生成を防ぐと宣言している記事をいくつか見つけました (私の場合は String の元のプロパティ タイプのみを残します)。

<jaxb:bindings version="2.0"
        xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
        xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <jaxb:bindings schemaLocation="schema-importedby-wcfsvcwsdl"
             node="/xs:schema">
    <jaxb:globalBindings generateElementProperty="false"/>
  </jxb:bindings>

唯一の問題は、このコードをどこに配置すればよいかが示されていないことです。私のプロジェクトにはいくつかの wsdl ファイルと xml ファイルがあり、いくつか試してみましたが、どれもうまくいかないようです。

ありがとう

4

1 に答える 1

1

パラメータを生成ツール - xjcに追加します。

  • bindings.xmlファイルを保存
<jaxb:bindings version="2.0" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <jaxb:bindings node="/xs:schema"> 
        <jaxb:globalBindings generateElementProperty="false"/> 
    </jaxb:bindings> 
</jaxb:bindings>
  • コンソール/ツールでパラメータを追加:

    xjc -verbose -b bindings.xml -wsdl my_wsdl_from_c_sharp.wsdl ...

または wsdl2java を使用する場合: wsdl2java -b bindings.xml ...

于 2012-10-31T12:08:17.083 に答える