[ 
https://issues.apache.org/jira/browse/XMLRPC-178?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12791976#action_12791976
 ] 

Gamaliel Amaudruz commented on XMLRPC-178:
------------------------------------------

Hello,
I have a similar issue when I use the proxy method with a function defined in 
the Interface as returning a String[]. I get the error even if I do no casting 
on it, just invoking the method:
myProxyObject.theMethodReturningAStringArray(someParams);
raises a "java.lang.ClassCastException: [Ljava.lang.Object;" in the proxy 
object.

The "fix" defined here http://ws.apache.org/xmlrpc/faq.html#arrays is not for 
the proxy method. I tried many different casting options but I can't find the 
correct one.
If the proxy method cannot handle functions which return Array, I think it 
would be good to indicate this limitation on the website here:
http://ws.apache.org/xmlrpc/advanced.html

Or maybe I'm not getting something right...
Regards,
Gam


PS: I implemented the old way where you have to do everything by hand and it 
works fine.

> ClassCastException in client proxy cannot cast Ljava.lang.Object to 
> Ljava.lang.String
> -------------------------------------------------------------------------------------
>
>                 Key: XMLRPC-178
>                 URL: https://issues.apache.org/jira/browse/XMLRPC-178
>             Project: XML-RPC
>          Issue Type: Bug
>          Components: Releases
>    Affects Versions: 3.1.2
>         Environment: Windows Server 2003
>            Reporter: Chris Cooper
>            Assignee: Jochen Wiedmann
>
> I have a fairly simple client server application. One of my exposed server 
> methods returns a String[]. I am getting a ClassCastException on the client 
> side when getting the result. The class cast exception occurs in 
> ClientFactory.class in the newInstance function. I am stepping through the 
> code, and it happens on the line "return typeConverter.convert(result);". 
> Stepping into this function hasn't really helped as it causes the 
> ClassCastException. I am not sure what the problem is, on the server side I 
> have debugged and determined that my function is indeed returning a String[] 
> as it should be, but for some reason when it comes over to the client side 
> there is a problem. I can post you the stack trace:
> Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; 
> cannot be cast to [Ljava.lang.String;
>       at $Proxy1.getInstances(Unknown Source)
>       at 
> com.rsa.grinderbot.controller.perfmon.WindowsProxy.getInstances(WindowsProxy.java:46)
>  -> this is the proxy object calling my server's function
>       at 
> com.rsa.grinderbot.controller.perfmon.WindowsStats.<init>(WindowsStats.java:37)
>       at 
> com.rsa.grinderbot.controller.perfmon.PerformanceMonitor.<init>(PerformanceMonitor.java:33)
>       at com.rsa.grinderbot.controller.Controller.run(Controller.java:268)
>       at com.rsa.grinderbot.controller.Controller.main(Controller.java:333)
> Here is my constructor that creates the proxy object using the client factory.
> public WindowsProxy(Server server) {
>               this.server = server;
>               XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
>               try {
>                       config.setServerURL(new URL("http://"; + 
> server.getHostname() + ":" + server.getPort() + "/xmlrpc"));
>                       config.setReplyTimeout(0);
>                       config.setConnectionTimeout(0);
>                       XmlRpcClient client = new XmlRpcClient();
>                   client.setConfig(config);
>                   ClientFactory factory = new ClientFactory(client);
>                   windows = (WindowsServerAPI) 
> factory.newInstance(WindowsServerAPI.class);
>               } catch (MalformedURLException e) {
>                       //TODO log4j
>                       e.printStackTrace();
>               }
>       }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to