# xml über webservice



## dummy89 (6. Jun 2008)

hallo!
sollte einen webservice schreiben, der eine xml file liefert. kann mir jemand tips geben, wie das funktioniert?
lg


----------



## javasimon (7. Jun 2008)

ein webservice liefert immer XML! schau mal in wikipedia nach: http://de.wikipedia.org/wiki/Webservice
wie willst du den WS denn erstellen? eclipse oder netbeans bieten tolle funtionen um einen WS zu machen! oder wenn du java 6 benutzt geht das jetzt mit annotations noch einfacher. auf google findest du viele anleitungen dazu: http://www.google.ch/search?hl=de&q=java+6+webservice&btnG=Suche&meta=


----------



## dummy89 (7. Jun 2008)

Ich habe bereits einen web service geschrieben, der eine (von mir implementierte) Klasse zurückliefert. Mein Lehrer war mit meiner Lösung nicht zufrieden und hat nur gemeint, er möchte, dass ich das mit xml löse, da der returnwert nicht nur daten einer klasse, sonder auch noch aus anderen klassen enthalten soll (da es sich um eine art lizenzdatei handelt).


----------



## javasimon (8. Jun 2008)

na das objekt, welches zu zurückgibst, wird ja sowiso auch als XML serialisiert! ein WS kann nicht ein Objekt an sich übermitteln! aber wenn das anderst verlangt ist, dann bau dir doch eine XML strucktur zusammen und übergib diese als String...! moderne IDEs nehmen dir diese arbeit im normalfall halt ab, sie serialisieren dein objekt, hängen noch einen SOAP header dazu, verschicken das ganze im XML format und extrahieren auf der client seite wieder ein objekt aus den daten.


----------



## dummy89 (8. Jun 2008)

Wie baue ich mir eine XML Struktur zusammen? Weil wenn ich eine XMLEventFactory erzeuge brauche ich einen OutputStream...
Gibt es eine andere Möglichkeit dazu?
lg


----------



## javasimon (8. Jun 2008)

mach's doch ganz einfach und schreib das XML in einen String! wenn du möchtest kannst natürlich auch ein jdom document benutzen, aber ein string ist sicher die einfachste möglichkein.

```
StringBuilder sb = new StringBuilder();
sb.append("<wsmessage>");
sb.append("<whatever id=\"123\">");
...
sb.append("</whatever>");
sb.append("</wsmessage>");

return sb.toString();
```


----------

