2017-11-17 3 views
0

Kontext: Ich entwickle einen Client, der cxf soap webservice verbrauchen wird. In diesem Moment habe ich nur die wsdl und seine xsd's, die genug sind, um die Java-Typen zu generieren.wie während der Entwicklungszeit von unten nach oben die Java-Hierarchie mit von jaxb generierten Dateien entdecken

Anforderung: Ich muss den ContactType erhalten und bin mir sicher, dass wir ihn erhalten, wenn der Webservice betriebsbereit ist (ContactType ist nur ein Beispiel unter mehreren anderen).

ich in Eclipse von ContactType.java gesucht und ich fand es

@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; 
    ... 

Das Problem:. I, welche Klasse verbraucht es zu codieren, um wie MyWebServiceResponse.getMyAType() getMyBType nicht herausfinden kann .. so weiter bis ContactType. Es wäre einfach, wenn der xsd-Baum klein wäre oder ich vorher den Modellentwurf kenne (was nicht meine Realität ist).

Nun, ich kenne den Typ, den ich von Webservices erhalten werde (hier getMyAType genannt) und ich kann jedes Objekt durchsuchen/navigieren, aber es wird zu einer gewaltigen Aufgabe, die von Augen erledigt wird, bis ich eine gefunden habe lokale pojo.

Zweifel: Warum finde ich nirgendwo Code ContactingType? Ich manuell durch den Kontakt gesucht und gefunden:

@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> 

Ich glaube, dass eine Fabrik in der Eclipse-Werkzeugtyp Hierarchie stört und Aufrufhierarchie so Eclipse kann mich zeigen, welche Klassen auf Contact abhängen (dies würde meine Arbeit leicht machen) .

Meine Frage: sicherlich ist es eine Art allgemeines Problem und ich glaube nicht, dass JAXB/CXF erfahrene Entwickler mit den Augen gesucht haben. Gibt es eine klügere Methode, um von der Baumklasse zur Baumabhängigkeit zu gelangen?

PS .: Ich kann keine XML-Beispielantwort bekommen, also könnte ich es drucken und + F easial im Notizblock steuern. Der Server ist noch nicht betriebsbereit, aber ich habe bereits die wsdl + xsds.

Antwort

0

Wahrscheinlich eine der dummesten Fragen, die ich gemacht habe, aber ich habe die Antwort nirgendwo zuvor gefunden. Anstelle der Ansichten "Typhierarchie" oder "Aufrufhierarchie" genügt die Suche nach "Referenzen" (vergessen Sie nicht, den Ordner generated_source zu übernehmen). Ich hoffe, dass dies jemandem helfen kann, Eclipse zu benutzen und einen Client zu erstellen, der eines Tages die Dienste übernimmt.

enter image description here

Verwandte Themen