Service invocation fails when original wsdl is included in the service archive
and generate client code using ?wsdl
-------------------------------------------------------------------------------------------------------------------
Key: AXIS2-2415
URL: https://issues.apache.org/jira/browse/AXIS2-2415
Project: Axis 2.0 (Axis2)
Issue Type: Bug
Components: wsdl
Affects Versions: 1.2
Environment: winxp, jdk15, tomcat 6.0.10
Reporter: Charitha Kankanamge
I observed the following behavior in axis2-1.2 RC1 and seems to be a bug. I
noticed that the wsdl file generated by java2wsdl and ?wsdl are different even
if the service implementation class is same.
I deployed a service and generated client using the wsdl2java by specifying
http://localhost:8080/axis2/services/servicename?wsdl as url.
Then I wrote a java client and accessed the service successfully.
After that, I generated the wsdl of the same service by using java2wsdl command.
Then I added the generated wsdl in to the META-INF directory of the service
archive and set useOriginalwsdl=true in services.xml
Restarted the tomcat server and sent the same request through the java client
which was written previously.
Then the following exception was thrown and listed in tomcat server console.
SEVERE: Exception occurred while trying to invoke service method addnumbers
java.lang.IllegalArgumentException: wrong number of arguments
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:585)
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:95)
at
org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:39)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:144)
at
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:279)
at
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:116)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:595)
Steps to reproduce:
================
1. Deploy a service archive
2. Generate client stubs using wsdl2java by specifying ?wsdl url of the service
(-uri http://localhost:8080/axis2/services/MyAxisservice?wsdl) and write a
client
3. Invoke the service. This should be successful.
4. Now generate the wsdl using same service implementation class (java2wsdl)
ie:- java2wsdl -cn Mathsclass -o C:\Axis2\axis2-1.2-RC1\bin\out -cp . -sn
MyAxisservice
5. Add the generated wsdl in to service archive and set useOriginalwsdl=true in
services.xml
6. Redeploy the same service and invoked it through the above client
Please find the attached wsdl files for more information
1. Mathsclass-doc.wsdl is the wsdl generated by java2wsdl command
2. MyAxisservice.wsdl is the one generated by ?wsdl
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]