Implementation of the standard UDDI v.3 API web services with Axis fails
------------------------------------------------------------------------
Key: AXIS-1901
URL: http://issues.apache.org/jira/browse/AXIS-1901
Project: Axis
Type: Bug
Components: Serialization/Deserialization, WSDL processing
Versions: 1.2RC3
Environment: Linux, Tomcat 5.5.8, Java 1.4.2_06
Reporter: Volodymyr Ilchenko
I was investigating how Axis 1.2RC3 could be used to implement UDDI v.3 API
web-services. UDDI provides WSDL files at
http://www.oasis-open.org/committees/uddi-spec/doc/tcspecs.htm#uddiv3 . There
is also a slightly modified schema (without xsd:choice elements) at
http://www.oasis-open.org/committees/uddi-spec/doc/tns.htm#jaxrpc11 .
I did the following:
1. Generate Java classes from WSDL with WSDL2Java tool:
java org.apache.axis.wsdl.WSDL2Java -o src -t -s file:uddi_v3_service.wsdl
where uddi_v3_service.wsdl is taken from
http://www.oasis-open.org/committees/uddi-spec/doc/tn/uddi-spec-tc-tn-jax-rpc-20050126/wsdl/uddi_v3_service.wsdl
2. Compile the generated sources. The compilation fails in the test case: the
CompletionStatus class is instantiated with a simple constructor while it has a
protected constructor which requires a string parameter. I change the
instantiation into a CompletionSrarus.value1 const final field.
3. Implement a simple test method and a corresponding server implementation.
4. Deploy the web services with AdminClient:
org.apache.axis.client.AdminClient src/null/deploy.wsdd
The deployment succeeds.
5. Run the test. The test fails with an exception in the Tomcat log.
6. Also an exception is generated if the web service is requested to generate a
WSDL (with ?wsdl URL parameter).
The following exceptions occur:
===============================
java.lang.reflect.InvocationTargetException
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.axis.transport.http.AxisServlet.processQuery(AxisServlet.java:1116)
at
org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:224)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
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:825)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)
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(Thread.java:595)
Caused by: makeTypeElement() was told to create a type
"{urn:uddi-org:api_v3}>authInfo", with no containing element
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1723)
at org.apache.axis.wsdl.fromJava.Types.writeTypeForPart(Types.java:395)
at
org.apache.axis.wsdl.fromJava.Types.writeWrappedParameter(Types.java:582)
at
org.apache.axis.wsdl.fromJava.Emitter.writeWrapperPart(Emitter.java:1654)
at
org.apache.axis.wsdl.fromJava.Emitter.writeRequestMessage(Emitter.java:1451)
at
org.apache.axis.wsdl.fromJava.Emitter.writeMessages(Emitter.java:1087)
at
org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:1056)
at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:471)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:322)
at
org.apache.axis.providers.BasicProvider.generateWSDL(BasicProvider.java:237)
at
org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:33)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:104)
at
org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:321)
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:467)
at
org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.java:68)
... 23 more
===============================
java.lang.reflect.InvocationTargetException
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.axis.transport.http.AxisServlet.processQuery(AxisServlet.java:1116)
at
org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:224)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
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:825)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)
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(Thread.java:595)
Caused by: Bean attribute _value is of type java.lang.String, which is not a
simple type
at
org.apache.axis.encoding.ser.SimpleSerializer.writeSchema(SimpleSerializer.java:252)
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1774)
at org.apache.axis.wsdl.fromJava.Types.writeType(Types.java:972)
at
org.apache.axis.encoding.ser.BeanSerializer.writeField(BeanSerializer.java:422)
at
org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:350)
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1774)
at org.apache.axis.wsdl.fromJava.Types.writeType(Types.java:972)
at
org.apache.axis.encoding.ser.BeanSerializer.writeField(BeanSerializer.java:422)
at
org.apache.axis.encoding.ser.BeanSerializer.writeSchema(BeanSerializer.java:350)
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1774)
at org.apache.axis.wsdl.fromJava.Types.writeTypeForPart(Types.java:395)
at
org.apache.axis.wsdl.fromJava.Types.writeWrappedParameter(Types.java:582)
at
org.apache.axis.wsdl.fromJava.Emitter.writeWrapperPart(Emitter.java:1654)
at
org.apache.axis.wsdl.fromJava.Emitter.writeRequestMessage(Emitter.java:1451)
at
org.apache.axis.wsdl.fromJava.Emitter.writeMessages(Emitter.java:1087)
at
org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:1056)
at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:471)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:322)
at
org.apache.axis.providers.BasicProvider.generateWSDL(BasicProvider.java:237)
at
org.apache.axis.strategies.WSDLGenStrategy.visit(WSDLGenStrategy.java:33)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.generateWSDL(SimpleChain.java:104)
at
org.apache.axis.handlers.soap.SOAPService.generateWSDL(SOAPService.java:321)
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:467)
at
org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.java:68)
... 23 more
===============================
--
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
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira