blubbla Geschrieben 31. Mai 2010 Geschrieben 31. Mai 2010 Hallo, ich würde für ein kleines Testprojekt gerne einen Webservice schreiben, der mir als Rückgabedatentyp eine List (z.B. Arraylist) oder einfach nur ein normales Array liefert. Application Server ist ein JBoss 5.x Wenn ich das gewünschte EJB nun deploye und auf den Clients mit WSCreate die Endpoints erstelle, erhalte ich aber auch jeweils einen eigenen Datentyp mitgeliefert. Als grobes Beispiel: @WebMethod public java.util.ArrayList<String> getStringList(){ ArrayList<String> liste = new ArrayList<String>(); liste.add....... ..... return liste; } Wenn ich den Webservice nun in meinem Client ansprechen will, liefert mir die getStringList()-Methode des endpoints keine java.util.ArrayList zurück, sondern eine <package_des_clients>.ArrayList. Und dieser Datentyp hat keine Methoden, um den Inhalt einzusehen. Ich denke mir schon dass das keine Frage ist die man mit 2 Zeilen beantworten kann, ich wäre aber zumindest froh wenn mir jemand ein paar Stichpunkte nennen könnte, mit denen ich weiter an der Sache arbeiten kann. Im Moment bin ich von den Tausenden Seiten JBoss-Tutorial einfach etwas erschlagen und weiss gar nicht mehr wo ich anfangen soll (Vllt noch kurz: Der JBoss Server läuft, deployen von EJBs funktioniert, auch ein Aufruf der Webservices ist kein Problem, und wenn die Webservices nur primitive Datentypen oder normale Instanzen von erstellten Klassen zurückgeben, funktioniert auch alles. Nur eben bei Collections und Arrays werden die Typen umgewandelt). Zitieren
smash Geschrieben 2. Juni 2010 Geschrieben 2. Juni 2010 Ich bin kein Experte für Web Services aber ich versuche einfach mal weiter zu helfen. Hast du schon mal probiert einfach einen Array zu verschicken? Du kannst ja aus einer List mit toArray() einen Array machen. Mit Arrays.asList() kannst du aus einem Array eine List machen. Am besten so: Object[] array = new Object[3]; List<Object> list = new LinkedList<Object>(Arrays.asList(array)); Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.