Vererbung + Webservices ?

reweiss

Mitglied
Hallo,

ich habe ein Problem, wobei ihr mir hoffentlich helfen könnt!

ich habe drei Klassen. Value, StringValue und integerValue. String und integerValue sind von der Klasse Value abgeleitet.

Ich habe eine weitere klasse ValueHolder. Diese Klasse hält ein Array von Value. In dieses Array wurden wahlweise String oder integerValues eingehägt.

Nun möchte ich über einen Webservice den ValueHolder senden. Das funktioniert soweit auch ganz gut. Allerdings bekomme ich beim wsdl2java nur die Value Klasse generiert und nicht die StringValue und integerValue Klasse. Das ist natürlich ein Problem, da ich die klassen nicht zurück casten kann!

Gibt es irgendwie eine Möglichkeit das er alle Klassen mitgeneriert? Dazu müsste er ja die fehlenden klassen erstmal in der wsdl Datei beschreiben. Oder? Also gibt es eine Möglichkeit ihm klarzumachen welche Klassen er in der wsdl bzw. xsd Datei beschreiben sollen? Damit ich nacher alle Klassen generiert bekomme!


Danke schonmal für die Hilfe!!
 
Hallo,

ich habe jetzt festgestellt, das wenn ich mit wsdl2java die Klassen generiere, wird nichtmal die Klasse für den ValueHolder erstellt. Diese wird aber in der xsd Datei beschrieben.

Code:
<!--
 Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.2_01-hudson-189-. 
-->
<xs:schema version="1.0" targetNamespace="http://services/">
<xs:element name="getValueHolder" type="tns:getValueHolder"/>
<xs:element name="getValueHolderResponse" type="tns:getValueHolderResponse"/>
<xs:complexType name="getValueHolder">
<xs:sequence/>
</xs:complexType>
<xs:complexType name="getValueHolderResponse">
<xs:sequence>
<xs:element name="return" type="tns:valueHolder" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="valueHolder">
<xs:sequence>
<xs:element name="valueList" type="tns:value" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="value">
<xs:sequence/>
</xs:complexType>
</xs:schema>
 
kann mir sonst jemand sagen wie ich die wsdl datei aktualisieren kann?

Ich benutze Glassfish und habe die wsdl und xsd Dateien gefunden. Wenn ich diese bearbeite und speicher, werden im Browser die Änderungen aber nicht angezeigt, Auch wenn ich den glassfish neustarte!

Bin für jede idee Dankbar!
 
Hallo,

also ich habe jetzt rausgefunden das es kein Problem mit der Vererbung gibt. Mein einziges Problem ist das die Subklassen nicht in der xml schema Datei beschrieben werden. Das liegt daran das diese nicht direkt referenziert werden.

Mit dem java2wsdl tool von axis2 ist es möglich mit dem "-xc" Flag weitere Klassen anzugeben und eine wsdl Datei zu erstellen.

Benutze ich nun diese wsdl Datei um mein Projekt auf dem Glassfish Server zu deployen bekomme ich folgende Fehlermeldung.

Not a primary WSDL=file:/.../GetValueService.wsdl since it doesn't have Service {http://services/}GetValueServiceService

Wenn ich mir dann im Browser die wsdl Datei ansehen will, kommt folgende Fehlermeldung:

Invalid wsdl request

Die hauseigene Glassfish Methode "wsgen -wsdl" bringt mich auch nicht weiter, da ich dort nicht ein solches "-xc "Flag gefunden habe.

Weiss vielleicht dafür jemand rat?
 

Neue Beiträge

Zurück