ws-xmlrpc-auto mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Cooper (JIRA)" <xmlrpc-...@ws.apache.org>
Subject [jira] Commented: (XMLRPC-178) ClassCastException in client proxy cannot cast Ljava.lang.Object to Ljava.lang.String
Date Tue, 13 Oct 2009 15:31:31 GMT

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

Chris Cooper commented on XMLRPC-178:
-------------------------------------

I'm not sure that is my problem, I have changed my code and I am still getting the exception.

Object [] instances = (String []) windowsProxy.getInstances("Network Interface");

public String[] getInstances(String category) throws IllegalArgumentException, InvalidCounterException
{
	return (String []) windows.getInstances(category);
}

public String[] getInstances(String category) throws IllegalArgumentException, InvalidCounterException
{
	if (category.equals("") || category == null) {
		throw new IllegalArgumentException("Category cannot be blank or null");
	}
	String [] instances = nativeGetInstances(category); // native function call
	if (instances.length == 0) {
		throw new InvalidCounterException("Invalid Category: " + category);
	}
	return (String []) instances;
}

> 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.


Mime
View raw message