Hallo an alle,
ich hoffe, ihr könnt mir bei meinem verzwickten Problem helfen.
Ich benutze JAX_WS, um einen WebService zugänglich zu machen und habe ihn mittels der "TOP-DOWN" Methode implementiert. Also XSD und WSDL erstellt und daraus dann meine WS Dateien generieren lassen. Dann eine IMPL Klasse erstellt, die auf die ServiceKlasse zugreift und alle angegebenen Funktionen implementiert. Das funktioniert auch wunderbar und ohne Probleme.
Nun wollte ich, da der WS in Entwicklung ist und einige Einstellungen sich immer wieder mal ändern, an wichtigen Stellen Kommentare einfügen. Das klappt ebenfalls, jedoch nur soweit, dass diese Kommentare in meinen eigenen generierten Klassen auftauchen, nicht aber mehr im WSDL File, welches meinen veröffentlichten WebService repräsentiert. Und auch nicht mehr im generierten TestClient.
So sieht es über einer generierten TypKlasse von mir aus (hier taucht noch alles richtig auf):
Wie schaffe ich, dass die wenigen Kommentare mitgeliefert werden? Gibt es dafür eine extra Annotation, die ich nur noch nicht gefunden habe?
in meiner XSD Datei sieht es so aus:
[XML]
<complexType name="Basic">
<annotation>
<documentation>ProductCode = "productcode"
SubscriptionCode = "subscriptioncode"
PaymentCode = "paymentcode"
InvoiceCode = "invoicecode"
PriceCode = "pricecode"
DeliveryCode = "deliverycode"
ScheduleCode = "schedulecode"
VariantCode = "variantcode"
AddDeliveryCode = "adddeliverycode"
CountryCode = "countrycode"
</documentation>
</annotation>
<sequence>
<element name="type" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="content" type="tns:Basiccontent"
maxOccurs="unbounded" minOccurs="0">
</element>
</sequence>
</complexType>
[/XML]
Auch in meiner selbst geschrieben WSDL Datei steht es:
[XML]
<wsdl
peration name="getConfig">
<wsdl:documentation>ProductCode = "productcode"
SubscriptionCode = "subscriptioncode"
PaymentCode = "paymentcode"
InvoiceCode = "invoicecode"
PriceCode = "pricecode"
DeliveryCode = "deliverycode"
ScheduleCode = "schedulecode"
VariantCode = "variantcode"
AddDeliveryCode = "adddeliverycode"
CountryCode = "countrycode"
</wsdl:documentation>
<wsdl:input message="tns:getConfigRequest"/>
<wsdl
utput message="tns:getConfigResponse"/>
</wsdl
peration>
[/XML]
Und in der generierten Service Klasse, taucht es ebenfalls auf:
Mein Problem: das veröffentlichte WSDL File ist jedoch "blanko". Da taucht weder der eine noch der andere Dokumentationsblock auf. Wie schaffe ich, dass die Dokumentation mitgeliefert wird? Da das WSLD File und auch die XSD je einen TAG <documentation> bieten, müsste es doch irgendwie machbar sein, oder?
Oder muss ich mit einer Welcome-Seite für meinen WebService arbeiten? Die ist bisher leider auch nicht erreichbar.
Viele Grüße,
Jay
ich hoffe, ihr könnt mir bei meinem verzwickten Problem helfen.
Ich benutze JAX_WS, um einen WebService zugänglich zu machen und habe ihn mittels der "TOP-DOWN" Methode implementiert. Also XSD und WSDL erstellt und daraus dann meine WS Dateien generieren lassen. Dann eine IMPL Klasse erstellt, die auf die ServiceKlasse zugreift und alle angegebenen Funktionen implementiert. Das funktioniert auch wunderbar und ohne Probleme.
Nun wollte ich, da der WS in Entwicklung ist und einige Einstellungen sich immer wieder mal ändern, an wichtigen Stellen Kommentare einfügen. Das klappt ebenfalls, jedoch nur soweit, dass diese Kommentare in meinen eigenen generierten Klassen auftauchen, nicht aber mehr im WSDL File, welches meinen veröffentlichten WebService repräsentiert. Und auch nicht mehr im generierten TestClient.
So sieht es über einer generierten TypKlasse von mir aus (hier taucht noch alles richtig auf):
Java:
/**
* ProductCode = "productcode"
* SubscriptionCode = "subscriptioncode"
* PaymentCode = "paymentcode"
* InvoiceCode = "invoicecode"
* PriceCode = "pricecode"
* DeliveryCode = "deliverycode"
* ScheduleCode = "schedulecode"
* VariantCode = "variantcode"
* AddDeliveryCode = "adddeliverycode"
* CountryCode = "countrycode"
*
* <p>Java class for Basic complex type.
*
* <p>The following schema fragment specifies the expected content contained within this class.
*
* <pre>
* <complexType name="Basic">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="type" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
* <element name="content" type="{http://de/WebAbo/Types}Basiccontent" maxOccurs="unbounded" minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Basic", propOrder = {
"type",
"content"
})
public class Basic {
[...]
Wie schaffe ich, dass die wenigen Kommentare mitgeliefert werden? Gibt es dafür eine extra Annotation, die ich nur noch nicht gefunden habe?
in meiner XSD Datei sieht es so aus:
[XML]
<complexType name="Basic">
<annotation>
<documentation>ProductCode = "productcode"
SubscriptionCode = "subscriptioncode"
PaymentCode = "paymentcode"
InvoiceCode = "invoicecode"
PriceCode = "pricecode"
DeliveryCode = "deliverycode"
ScheduleCode = "schedulecode"
VariantCode = "variantcode"
AddDeliveryCode = "adddeliverycode"
CountryCode = "countrycode"
</documentation>
</annotation>
<sequence>
<element name="type" type="string" maxOccurs="1" minOccurs="0"></element>
<element name="content" type="tns:Basiccontent"
maxOccurs="unbounded" minOccurs="0">
</element>
</sequence>
</complexType>
[/XML]
Auch in meiner selbst geschrieben WSDL Datei steht es:
[XML]
<wsdl
<wsdl:documentation>ProductCode = "productcode"
SubscriptionCode = "subscriptioncode"
PaymentCode = "paymentcode"
InvoiceCode = "invoicecode"
PriceCode = "pricecode"
DeliveryCode = "deliverycode"
ScheduleCode = "schedulecode"
VariantCode = "variantcode"
AddDeliveryCode = "adddeliverycode"
CountryCode = "countrycode"
</wsdl:documentation>
<wsdl:input message="tns:getConfigRequest"/>
<wsdl
</wsdl
[/XML]
Und in der generierten Service Klasse, taucht es ebenfalls auf:
Java:
/**
* ProductCode = "productcode"
* SubscriptionCode = "subscriptioncode"
* PaymentCode = "paymentcode"
* InvoiceCode = "invoicecode"
* PriceCode = "pricecode"
* DeliveryCode = "deliverycode"
* ScheduleCode = "schedulecode"
* VariantCode = "variantcode"
* AddDeliveryCode = "adddeliverycode"
* CountryCode = "countrycode"
*
* @param fieldnames
* @return
* returns de.webabo.types.ResultConfig
*/
@WebMethod(action = "http://de/WebAbo/Service/newConfig")
@WebResult(name = "resultConfig", partName = "resultConfig")
public ResultConfig getConfig(
@WebParam(name = "fieldnames", partName = "fieldnames")
GetFieldnames fieldnames);
Mein Problem: das veröffentlichte WSDL File ist jedoch "blanko". Da taucht weder der eine noch der andere Dokumentationsblock auf. Wie schaffe ich, dass die Dokumentation mitgeliefert wird? Da das WSLD File und auch die XSD je einen TAG <documentation> bieten, müsste es doch irgendwie machbar sein, oder?
Oder muss ich mit einer Welcome-Seite für meinen WebService arbeiten? Die ist bisher leider auch nicht erreichbar.
Viele Grüße,
Jay