|
... my question is: please help me solve
this issue. Thanks, Gábor From: Hello! I have found a bug int he RPC style webservice handling. I am using Tomcat v5.5.17, Axis 2 v1.0, MySQL
v5.0.24, MySQL Connector/J v5.0.3 If I change the return value of pay web method, then everything
works. But I would like to have a String return type. Nothing else changes, but
the web method is not working, throws an exception. Thanks, Gábor The details: 1.a.: The web method code: - - - - - - - - - - - - - - - - - - - - - - - - - - - service
code - - - - - - - - - - - - - - - - - - - - - - - - - - -
public String pay(Payment[] transactions) throws Exception
{
String ret = "";
for(int i = 0; i <= transactions.length; i++)
{
//System.err.println("a(z) " + i + "-ik név = " +
transactions[i].getName());
Context initContext = new InitialContext();
if ( initContext == null )
ret += "no init context; ";
Context envContext = (Context)initContext.lookup("java:/comp/env");
if ( envContext == null )
ret += "no enc context; ";
DataSource ds = (DataSource)envContext.lookup("jdbc/TestDB");
if ( ds == null )
ret += "no datasource; ";
Connection conn = ds.getConnection();
if (conn == null )
ret += "no conncetion; ";
Statement ins = conn.createStatement();
ins.execute("insert into w(name) values('" +
transactions[i].getName() + "')");
conn.commit();
conn.close();
}
return ret;
} - - - - - - - - - - - - - - - - - - - - - - - - - - -
service code - - - - - - - - - - - - - - - - - - - - - - - - - - - 1.b.: Payment class java - - - - - - - - - - - - - - - - - - - - - - - - - - -
Payment java class code - - - - - - - - - - - - - - - - - - - - - - - - - - - public class Payment {
private String m_Name;
private int m_Amount;
public String getName()
{
return m_Name;
}
public void setName(String value)
{
m_Name = value;
}
public int getAmount()
{
return m_Amount;
}
public void setAmount(int value)
{
m_Amount = value;
}
public Payment(String name, int amount)
{
m_Name = name;
m_Amount = amount;
} } - - - - - - - - - - - - - - - - - - - - - - - - - - -
Payment java class code - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.: Services.xml - - - - - - - - - - - - - - - - - - - - - - - - - - -
services.xml- - - - - - - - - - - - - - - - - - - - - - - - - - - <service name="wsTeszt"> <description>Proba
service.</description> <parameter
name="ServiceClass"
locked="false">wsteszt.ws</parameter> <operation name="hello">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </operation> <operation name="pay">
<messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </operation> </service> - - - - - - - - - - - - - - - - - - - - - - - - - - -
services.xml- - - - - - - - - - - - - - - - - - - - - - - - - - - 3.: I used the wsdl2java util to generate the stub: wsdl2java -uri http://localhost:8080/axis2/services/ws?wsdl 4.: The test code: - - - - - - - - - - - - - - - - - - - - - - - - - - - test
code - - - - - - - - - - - - - - - - - - - - - - - - - - -
Pay tomb = new Pay();
Payment p1 = new Payment();
p1.setName("name1");
p1.setAmount(5);
tomb.addParam0(p1);
Payment p2 = new Payment();
p2.setName("name2");
p2.setAmount(6);
tomb.addParam0(p2);
//ws.pay(tomb);
PayResponse rr = ws.pay(tomb);
System.out.println(rr.get_return()); - - - - - - - - - - - - - - - - - - - - - - - - - - - test
code - - - - - - - - - - - - - - - - - - - - - - - - - - - 5.: It throws an Exception: - - - - - - - - - - - - - - - - - - - - - - - - - - -
exception - - - - - - - - - - - - - - - - - - - - - - - - - - - Exception in thread "main"
org.apache.axis2.AxisFault: InstantiationException :
java.lang.InstantiationException: wsteszt.Payment
at
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:287)
at org.apache.axis2.WsStub.pay(WsStub.java:146)
at m.main(m.java:33) Caused by: java.lang.Exception: org.apache.axis2.AxisFault:
InstantiationException : java.lang.InstantiationException: wsteszt.Payment
at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:226)
at org.apache.axis2.databinding.utils.BeanUtil.processObject(BeanUtil.java:440)
at
org.apache.axis2.databinding.utils.BeanUtil.ProcessElement(BeanUtil.java:380)
at org.apache.axis2.databinding.utils.BeanUtil.deserialize(BeanUtil.java:359)
at org.apache.axis2.rpc.receivers.RPCUtil.processRequest(RPCUtil.java:82)
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:103)
at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
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(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
at org.apache.axis2.AxisFault.<init>(AxisFault.java:159)
... 3 more - - - - - - - - - - - - - - - - - - - - - - - - - - -
exception - - - - - - - - - - - - - - - - - - - - - - - - - - - |
- Axis2 RPC bug Prótár Gábor
- RE: Axis2 RPC bug Prótár Gábor
