R
reNur
Gast
Hallo,
ich will einfach einen kleinen Webservice schreiben, der z.B. die Funktion
public someObject setStrings( String[] s ) anbietet.
Diese Methode wird entsprechend annotiert,
also
und in JBoss AS 6 deployed. Mein Problem:
Die Methoden-Argumente des Typs String[] werden nicht auf eine Liste des Typs String gemappt, sondern als neue klasse StringArray im targetNamespace="http://jaxb.dev.java.net/array".
Das passiert mit allen Arrays, also auch mit double[], int[] usw.
D.h. wenn ich mir mit wsimport die Java-Files auf Clientseite erzeuge, werden auch die "StringArray" Klassen erzeugt (die intern wiederum eine Liste von Strings enthalten).
Das komische: Wenn ich - wie z.B. in der obigen Methode - ein komplexes Object (someObject) habe, das als Attribute Arrays hat, dann werden diese richtig gemappt, d.h. auf Clientseite als Listen von Strings.
Wie oder wo kann ich das default mapping einstellen? Bin sehr verwirrt, so weit ich das in den Dokus von Jaxb gelesen habe, muss man erst ein complex object erstellen, wenn man Arrays mit mehr als 2 Dimensionen verschicken will. Hat jemand einen Tipp?
ich will einfach einen kleinen Webservice schreiben, der z.B. die Funktion
public someObject setStrings( String[] s ) anbietet.
Diese Methode wird entsprechend annotiert,
also
Java:
@WebMethod
public someObject setStrings(
@WebParam(name = "lds_id") String[] s
);
und in JBoss AS 6 deployed. Mein Problem:
Die Methoden-Argumente des Typs String[] werden nicht auf eine Liste des Typs String gemappt, sondern als neue klasse StringArray im targetNamespace="http://jaxb.dev.java.net/array".
Das passiert mit allen Arrays, also auch mit double[], int[] usw.
D.h. wenn ich mir mit wsimport die Java-Files auf Clientseite erzeuge, werden auch die "StringArray" Klassen erzeugt (die intern wiederum eine Liste von Strings enthalten).
Das komische: Wenn ich - wie z.B. in der obigen Methode - ein komplexes Object (someObject) habe, das als Attribute Arrays hat, dann werden diese richtig gemappt, d.h. auf Clientseite als Listen von Strings.
Wie oder wo kann ich das default mapping einstellen? Bin sehr verwirrt, so weit ich das in den Dokus von Jaxb gelesen habe, muss man erst ein complex object erstellen, wenn man Arrays mit mehr als 2 Dimensionen verschicken will. Hat jemand einen Tipp?