# soap message in java klasse speichern



## hermanhermit (8. Mrz 2005)

hallo zusammen,
ich versuche einen einen webservice clienten zu schreiben, der soapmessages wie diese erhält:


```
<SOAP-ENV:Envelope
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
	SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/">
		<SOAP-ENV:Body>
			<M:GetCatalogDataResponse xmlns:M="MeineURI">
				<Katalog>
					<ID>769823789</ID>
				 	<Titel>Atonement</Titel>
					<Verfasser>McEwan</Verfasser>
					<Sprache>englisch</Sprache>
				</Katalog>
			</M:GetCatalogDataResponse>
		</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
```

diese daten möchte ich jetzt in meinem Clienten in eine Klasse speichern, die diese Katalogdaten verwaltet, etwas so:


```
public CatalogList buildCL {			
	CatalogList cl = new CatalogList(UrlOfDocument);
	cl.add(Titel, Atonement);
 	cl.add(Verfasser, McEwan);
	cl.add(Sprache, Englisch);
	return cl;
}
```

aber wie deserialisiere ich die daten? ich habe apache axis und xerces implementiert, aber brauche ich das dazu 
überhaupt? oder geht das mit dom oder jdom? ich weiss nicht genau wo ich nach einer lösung suchen soll.  :bahnhof: 

danke vielmals + grüße! 
hh
p.s. umgekehrt möchte ich eine solche soapmessage aus der o.g klasse generieren ...


----------



## foobar (8. Mrz 2005)

Was willst du denn mit der Message machen?


----------



## hermanhermit (8. Mrz 2005)

ich will erstmal nur die daten aus der message in meine javaobjekte verspeichern. in diesem falle habe ich ein Objekt CatalogList, welches alle Elemente aus dem Parameter "Katalog" der Soapmessage speichern soll (also ID, Titel, Verfasser, Sprache). z.b. in einer List. dazu brauche ich jetzt sowas wie einen soapparser, oder?


----------



## Bleiglanz (9. Mrz 2005)

Anonymous hat gesagt.:
			
		

> ich will erstmal nur die daten aus der message in meine javaobjekte verspeichern. in diesem falle habe ich ein Objekt CatalogList, welches alle Elemente aus dem Parameter "Katalog" der Soapmessage speichern soll (also ID, Titel, Verfasser, Sprache). z.b. in einer List. dazu brauche ich jetzt sowas wie einen soapparser, oder?



Nein, i.A. nicht...

Das Ziel von Toolkits wie Axis ist, dass du selber überhaupt nichts serialisieren oder deserialiseren musst, das ganze Marshalling wird vom Toolkit (!) übernommen


----------



## hermanhermit (9. Mrz 2005)

aber wie? ich habe kein beispiel gefunden, das das macht was ich brauche. oder hab ich es nur nicht verstanden??


----------



## Bleiglanz (9. Mrz 2005)

und sollen wir jetzt raten, was genau du brauchst?

google mal nach "axis tutorial" ...


----------



## hermanhermit (9. Mrz 2005)

mmmh.  :roll: 
sitze schon seit ner woche vor axis tutorials. aber raffe trotzdem nicht wie axis mein problem lösen kann. ich will ja nur die daten aus der soapmessage kriegen bzw. daten in eine soapmessage - so wie ich es oben beschrieben habe. naja, dann werde ich mal weiter googlen...


----------



## Bleiglanz (10. Mrz 2005)

Frage:

Ist der Webservice-Endpoint schon fertig oder schreibst du den noch?

Hast du schon ein WSDL File?

Woher kommen die "Soapmessages wie diese"?

Willst du einen Endpoint oder einen Client schreiben?


----------



## hermanhermit (10. Mrz 2005)

ich möchte nur einen clienten schreiben. der service wird von jemand anderem geschrieben (in c++), ist aber noch nicht fertig. die wsdl file hab ich noch nicht bekommen, kriege ich aber bald. aber ich weiss schon das die soapmessages so aussehen werden, die von diesem service kommen.


----------



## Bleiglanz (10. Mrz 2005)

du nimmst die wsdl und jagst sie durch ein tool, das dir dann deinen stub liefert...


----------



## hermanhermit (12. Mrz 2005)

ah!
dazu sind also stubs da. das hatte ich nicht kapiert. ok, das hilft mir glaube ich erstmal weiter. dann muss ich wohl erstmal auf die wsdl warten.
danke dir!


----------

