# XML-RPC -> Exception $Proxy0-Unknown Source-No such handl



## Guest (21. Mai 2008)

Habe eine Exception bei dem Aufruf meines XML-RPC Clients, deren Ursache ich nicht finden kann.
Hier erstmal ein Teil der Exception:


> Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
> at $Proxy0.getEcho(Unknown Source)
> at client.Client.<init>(Client.java:27)
> at client.Main.main(Main.java:16)
> Caused by: org.apache.xmlrpc.XmlRpcException: No such handler: interfaces.Echo.getEcho ...



Mein PackageStruktur:


> Package server: Bank
> Package server: EchoImpl
> Package server: Main
> 
> ...



Mein Server:

```
package server;

import java.io.IOException;

import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.server.*;
import org.apache.xmlrpc.webserver.*;

public class Bank {
	private static final int PORT = 4445;
	
	public Bank() throws  IOException, XmlRpcException {
		PropertyHandlerMapping phm = new PropertyHandlerMapping();
		phm.addHandler("Echo", server.EchoImpl.class);
		
		WebServer webServer = new WebServer(Bank.PORT);
		XmlRpcServer server = webServer.getXmlRpcServer();
		server.setHandlerMapping(phm);
		webServer.start();
		System.out.println("Webserver started!");
	}
}
```

Mein Client:

```
package client;

import interfaces.Echo;

import java.net.*;

import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.*;
import org.apache.xmlrpc.client.util.ClientFactory;

public class Client {
	private static final String SERVER_URL = "http://localhost:4445";
	
	public Client() throws MalformedURLException, XmlRpcException {
		URL url = new URL(Client.SERVER_URL);
		
		XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
		config.setServerURL(url);
		
		XmlRpcClient client = new XmlRpcClient();
		client.setConfig(config);
		
		ClientFactory factory = new ClientFactory(client);
		Echo echo = (Echo)factory.newInstance(interfaces.Echo.class);
		
		
		String s = echo.getEcho("Hallo");
		System.out.println(s);
		
		String t = echo.getEchoWithDate("Hallo");
		System.out.println(t);
	}
}
```

EchoImpl:

```
package server;


import interfaces.Echo;

import java.text.SimpleDateFormat;
import java.util.Date;

public class EchoImpl implements Echo {
	public String getEcho(String s) {
		return s;
	}
	
	public String getEchoWithDate(String s) {
		SimpleDateFormat f = new SimpleDateFormat("ss.MM.yyyy HH:mm:ss");
		return "["+f.format(new Date())+"] "+s;
	}

	
}
```

Mein Interface:

```
package interfaces;

public interface Echo {
	public String getEcho(String s);
	public String getEchoWithDate(String s);
}
```

Der Server läuft. Vielleicht könnt Ihr mir nochmal unter die Arme greifen.
Im Voraus vielen Dank.

Conrad


----------



## Guest (25. Mai 2008)

Nach langer Suche habe ich immer noch keine adäquate Idee. Vielleicht kann ja jemand von euch doch nochmal draufschauen.


Viele Grüsse
Conrad


----------



## Guest (11. Jul 2008)

Genau dieses Problem hae ich auch gerade. Weiß jemand zufälligerweise mittlerweile Rat? Bin knapp vor dem Verzweifeln.


----------



## tuxedo (11. Jul 2008)

Habt ihr mal nach der Fehlermeldung gegoogelt? Kan mich dunkel dran erinnern dass es irgendwas "verzwicktes" ist. Hatte das bei RMI auch schon. Kriegs aber nichtmehr zusammen was es war und wie mans behebt. Aber mit google bin ich damals recht schnell zur Lösung gekommen.

- Alex


----------



## tuxedo (11. Jul 2008)

Ah, wenn ich mir das INterface so ansehe: Fehlt da nicht bei den Methoden ein entsprechdes "trows XYZ" ???

Bei RMI ist es ein "throws RemoteException" ...Bei XML-RPC -> kein plan. Siehe deren Doku.

- Alex


----------



## Guest (13. Jul 2008)

Leider liefert die XML-RPC dazu gar nichts.


----------



## Guest (14. Jul 2008)

So, ich habe die Lösung gefunden (zumindest bei mir):

In der XmlRpcProperties Datei muss link und rechts der name der Klasse und das package angegeben werden.

z.B.:

org.apache.Interface=org.apache.InterfaceImpl


Hoffe, geholfen zu haben.


----------



## wrepisfiesize (17. Okt 2008)

Ïîíðàâèëîñü, íóæíî äåëàòü êëóá ïî èíòåðåñàì


----------



## PitIntatadigo (1. Nov 2008)

Õîðîøî ÷òî óäàëîñü îòûñêàòü òàêîé çàìå÷àòåëüíûé áëîã, à òî ïîñëåäíåå âðåìÿ óæå íà÷àë äóìàòü ÷òî èíåò ýòî ìóñîðêà ñïëîøíàÿ.


----------

