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

Reply via email to