コンテキスト: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があります。