You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xmlrpc-dev@ws.apache.org by "Han, Zhi (Zhi)" <zh...@lucent.com> on 2006/06/22 15:13:07 UTC

RE: [jira] Commented: (XMLRPC-89) cannot use Vector, Hashtable, e tc as arguments of metheds in handler

Still NO.

I change the server method to
public Vector getData(List req)
{
}

and client side to

List req = new Vector();
req.add("user");
Vector params = new Vector(1);
params.add(req);
client.execute("handler.getData", params);

I got the same exception

Thanks,

Zhi
-----Original Message-----
From: Jochen Wiedmann (JIRA) [mailto:xmlrpc-dev@ws.apache.org]
Sent: Thursday, June 22, 2006 9:00 PM
To: zhihan@lucent.com
Subject: [jira] Commented: (XMLRPC-89) cannot use Vector, Hashtable, etc
as arguments of metheds in handler


    [
http://issues.apache.org/jira/browse/XMLRPC-89?page=comments#action_12417299
] 

Jochen Wiedmann commented on XMLRPC-89:
---------------------------------------

Please try the following: Does it work, if you change the use of Vector on
the server side to List? (Using a List is recommended anyways, for reasons
of performance.)


> cannot use Vector, Hashtable, etc as arguments of metheds in handler
> --------------------------------------------------------------------
>
>          Key: XMLRPC-89
>          URL: http://issues.apache.org/jira/browse/XMLRPC-89
>      Project: XML-RPC
>         Type: Bug

>  Environment: xmlrpc3.0b1 nightlybuild
>     Reporter: Zhi Han

>
> In handler, I have methods like
> public Vector getData(Vector req)
> {
> }
> public Vector pingHandler()
> {
> }
> On client side, I have code like:
> Vector req = new Vector();
> req.add("user");
> Vector params = new Vector(1);
> params.add(req);
> client.execute("handler.getData", params);
> I always got exception
> Jun 22, 2006 7:34:37 AM org.apache.xmlrpc.server.XmlRpcStreamServer
execute
> SEVERE: execute: Error while performing request
> org.apache.xmlrpc.XmlRpcException: Illegal argument for method getData in
class test.servlet.XMLRPCHandler
>         at
org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHan
dler.java:71)
>         at
org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:
43)
>         at
org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:67)
>         at
org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:
196)
>         at
org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.
java:91)
>         at
org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:99)
>         at test.servlet.XMLRPCServlet.doPost(XMLRPCServlet.java:217)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
>         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
>         at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
>         at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117
)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>         at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>         at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
>         at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
>         at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
>         at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:683)
>         at java.lang.Thread.run(Thread.java:536)
> Caused by:
> java.lang.IllegalArgumentException: argument type mismatch
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
>         at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:324)
>         at
org.apache.xmlrpc.server.ReflectiveXmlRpcHandler.execute(ReflectiveXmlRpcHan
dler.java:65)
>         at
org.apache.xmlrpc.server.XmlRpcServerWorker.execute(XmlRpcServerWorker.java:
43)
>         at
org.apache.xmlrpc.server.XmlRpcServer.execute(XmlRpcServer.java:67)
>         at
org.apache.xmlrpc.server.XmlRpcStreamServer.execute(XmlRpcStreamServer.java:
196)
>         at
org.apache.xmlrpc.webserver.XmlRpcServletServer.execute(XmlRpcServletServer.
java:91)
>         at
org.apache.xmlrpc.webserver.XmlRpcServlet.doPost(XmlRpcServlet.java:99)
>         at test.servlet.XMLRPCServlet.doPost(XMLRPCServlet.java:217)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:237)
>         at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:157)
>         at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:214)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContext
Valve.java:198)
>         at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:152)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137
)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117
)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:109)
>         at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:104)
>         at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
>         at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
>         at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
>         at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
>         at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
>         at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
>         at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:683)
>         at java.lang.Thread.run(Thread.java:536)
> While invoke pingHandler (new argument)
> I got 
> org.apache.xmlrpc.client.XmlRpcClientException: Failed to parse servers
response: Unexpected non-whitespace character data
> 	at
org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTran
sport.java:267)
> 	at
org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTrans
port.java:216)
> 	at
org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:
53)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
> 	at MyXmlRpcClient.main(MyXmlRpcClient.java:32)
> Caused by:
> org.xml.sax.SAXParseException: Unexpected non-whitespace character data
> 	at
org.apache.xmlrpc.parser.TypeParserImpl.characters(TypeParserImpl.java:79)
> 	at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.characters(RecursiveTypePar
serImpl.java:139)
> 	at org.apache.xmlrpc.parser.MapParser.characters(MapParser.java:79)
> 	at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.characters(RecursiveTypePar
serImpl.java:142)
> 	at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.characters(RecursiveTypePar
serImpl.java:142)
> 	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.characters(Unkn
own Source)
> 	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanC
ontent(Unknown Source)
> 	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$Fragm
entContentDispatcher.dispatch(Unknown Source)
> 	at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanD
ocument(Unknown Source)
> 	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
> 	at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown
Source)
> 	at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
> 	at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown
Source)
> 	at
org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTran
sport.java:265)
> 	at
org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTrans
port.java:216)
> 	at
org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:
53)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:136)
> 	at
org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:125)
> 	at MyXmlRpcClient.main(MyXmlRpcClient.java:32)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: xmlrpc-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: xmlrpc-dev-help@ws.apache.org