# Apache XML-RPC Tutorial gesucht!



## mycue1981 (21. Feb 2005)

Hallo zusammen!

Ich möchte das Apche XML-RPC API verwenden um nach einem RPC vom Server einen "struct" (mehrere Werte!) zurückzugeben. Irgendwie scheint man in allen Beispielem zu RPCs sich damit begnügen zu können ein einzigen String zurückzugeben!
Es wäre wirklich toll wenn mir da jemand weiterhelfen könnte! 
Ein Tutorial, das das oben beschr. Problem behandelt wäre völlig ausreichend!

Grüße
mycue


----------



## stev.glasow (21. Feb 2005)

Hi, ich kenne mich nicht damit aus, aber kannst du nich einfach jedes Objekt senden welches Serializable implementiert? Sprich auf Clientseite einfach Foo result = (Foo) xmlrpc.execute ("method.name", params);


----------



## mycue1981 (21. Feb 2005)

Hi stevg!

Super vielen Dank für deine schnelle Antwort! Ja das war mein fehler. Ich habe ein object übergeben wollen, das nicht serialziable implementiert.
Ich gebe zu noch blutiger JAVA anfänger zu sein und habe gedacht das problem liege bei XML-RPC! Sorry!
Aber die docu ist wirklich poor.
Woher weist du, dass das object serializable implementieren muss? Weil das bei "netzwerkverbindungen" bzw. Streams immer so ist oder steht das auch in der Docu, bzw. habe ich es dort nicht gefunden.
Nochmal Vielen Dank!

Grüße
mycue


----------



## stev.glasow (21. Feb 2005)

War nur so ne Vermutung, da es so weit ich weiß nicht so einfach möglich ist 'Nicht-Serializable' Objekte über einen Stream zu schicken. Außerdem liegt es nahe, dass diese XML-RPC einen ObjectOutputStream (java.io) für das Senden der Antwort nutzt und mit diesem ist es definitiv nicht möglich 'Nicht-Serializable' Objekte zu senden.


----------



## mycue1981 (21. Feb 2005)

Hi nochmal!

ich habe jetzt mal eine eigene klasse geschrieben die serializable implementiert und versucht diese zurückzuschicken. Funktioniert aber nicht. 
Es scheint nur mit Collections und primitiven Typen zu funktionieren! Woran kann das liegen?

Hier die klasse:

public class Datensatz implements java.io.Serializable 
{
  public String name;
  public int zahl;	
}

Datensatz result = (Datensatz) xmlrpc.execute ("method.name", params);
funzt nicht!

Grüße
mycue


----------



## AlArenal (21. Feb 2005)

Ich arbeite seit etwa einem Jahr mit XML-RPC und hatte mit der Doku keine Probleme. Nutze ein PHP-Skript als Server und nutze Apache XML-RPC client-seitig.

Hier steht welche Datentypen wie gemappet werden: http://ws.apache.org/xmlrpc/types.html

Beispiel für nen Client: http://ws.apache.org/xmlrpc/client.html

Beispiel für nen Server: http://ws.apache.org/xmlrpc/server.html

Der Rest ergibt sich aus der mitgelieferten Doku.

Hier ist auch nochmal ein Beispiel: https://www.secpay.com/xmlrpc/usage.html


----------



## stev.glasow (21. Feb 2005)

Achso der haut das nicht direkt in einen Strom sonder macht '(erst) ein XML Dokument draus, deswegen auch *XML*-RPC *lichAufgeh*    :wink:


----------



## AlArenal (21. Feb 2005)

mycue1981 hat gesagt.:
			
		

> Es scheint nur mit Collections und primitiven Typen zu funktionieren! Woran kann das liegen?



Es funktioniert nur mit diesen Typen: http://ws.apache.org/xmlrpc/types.html

XML-RPC ist schon was älter und nur für primitive Datentypen geeignet, nicht dazu um direkt komplette beliebige Objecte zu transferieren. D.h. man muss die Objekte selbst demontieren und auf der Client-Seite wieder rekonstruieren.


----------



## Bleiglanz (21. Feb 2005)

Last published: 22 November 2003 

verwende lieber Axis....


----------



## mycue1981 (25. Feb 2005)

Hi alle!

Ich wollte XML-RPC verwenden um das projekt so primitiv wie möglich zu halten. Mal sehen ob Axis der Soap vielleicht doch besser geeignet sind!
Vielen Dank nochmal für eure antworten!

Grüße
mycue


----------

