2017-11-17 4 views
0

コンテキスト:cxf soap webserviceを使用するクライアントを開発しています。現時点では、私はwsdlとそのxsdしか持っていないので、Java型を生成するのに十分です。jaxbによって生成されたファイルを含むJava階層を下から上に発見する方法

要件:私はContactTypeを取得する必要があります。私は、Webサービスが稼働しているときにそれを受け取ると確信しています(ContactTypeはいくつかのサンプルの1つだけです)。

私はContactType.javaによってEclipseで検索し、私は

@XmlAccessorType(XmlAccessType.FIELD) 
    @XmlType(name = "ContactType", propOrder = { 
     "telefoonnummer", 
     "faxnummer", 
     "gsm", 
     "email", 
     "website" 
    }) 
    public class ContactType { 

     @XmlElement(name = "Telefoonnummer") 
     protected TekstKort20Type telefoonnummer; 
... 
     @XmlElement(name = "Email") 
     protected Tekst20Type email; 
     @XmlElement(name = "Website") 
     protected Tekst20Type website; 
    ... 

問題がそれを見つけた:私はMyWebServiceResponse.getMyAType()のように符号化するために、それを消費するクラスを見つけ出すことはできませんgetMyBType .. ContactTypeまで続きます。 xsdツリーが小さかったり、以前はモデルデザイン(私の現実ではない)が分かっていれば簡単です。

私はwebservicesから受け取るタイプを知っています(ここではgetMyATypeと呼ぶ)。各オブジェクトをブラウズ/ナビゲートすることはできますが、それは私がそれを見つけて、ローカルpojo。

疑問:私はContactTypeを消費/コンパイルするコードをどこで見つけるのですか?私は手動での接触によって検索し、私が見つかりました:

@XmlRegistry 
public class ObjectFactory { 
... 
    public OndernemingMyCostumerAppType createOndernemingMyCostumerAppType() { 
     return new OndernemingMyCostumerAppType(); 
    } 
... 

     <xs:complexType name="OndernemingMyCostumerAppType"> 
      <xs:sequence> 
    ... 
       <xs:element name="Contact" type="ContactType" minOccurs="0"/> 
    ... 
       </xs:sequence> 
     </xs:complexType> 

私は(これは私の仕事は簡単になるだろう)EclipseはクラスがContactTypeに依存している私を見ることができるように工場出荷時には、Eclipseツールタイプ階層と呼び出し階層に干渉していると信じています。

私の質問:間違いなく一般的な問題ですが、JAXB/CXF経験豊富な開発者が目を見ているとは思いません。ボトムクラスからツリー依存関係を発見する、よりスマートな方法がありますか?

PS:私はxmlサンプルの回答を得ることができないので、メモ帳で印刷してコントロールすることができます。サーバーはまだ稼動していませんが、すでにwsdl + xsdsがあります。

答えて

0

おそらく私が作った疑似質問のうちの1つですが、私は本当にどこにいても答えを見つけられませんでした。 「タイプ階層」ビューや「呼び出し階層」ビューの代わりに、「References」で検索するだけで十分です(generated_sourceフォルダを拾うことを忘れないでください)。私は、これがEclipseを使用していつかサービスを浄化するクライアントを作成するのに役立つことを願っています。

enter image description here

関連する問題