You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Olivier Montabert (JIRA)" <ax...@ws.apache.org> on 2004/11/05 17:10:34 UTC

[jira] Commented: (AXIS-1649) xsd:int parameters decoding fails (Null Pointer) when in document/literal SOAP message on the server side

     [ http://nagoya.apache.org/jira/browse/AXIS-1649?page=comments#action_55104 ]
     
Olivier Montabert commented on AXIS-1649:
-----------------------------------------

Here is the stacktrace on the server side (axis)

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.lang.NullPointerException
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:java.lang.NullPointerException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at un.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.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:382)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:279)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:450)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
        at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
        at java.lang.Thread.run(Thread.java:534)

        {http://xml.apache.org/axis/}hostname:hard.vbe.cpqcorp.net
        {http://xml.apache.org/axis/}isRuntimeException:true


> xsd:int parameters decoding fails (Null Pointer) when in document/literal SOAP message on the server side
> ---------------------------------------------------------------------------------------------------------
>
>          Key: AXIS-1649
>          URL: http://nagoya.apache.org/jira/browse/AXIS-1649
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.2RC1
>  Environment: jakarta-tomcat-4.1.30 / AXIS V1.1 or V1.2 RC1 / java1.4.2_02 / HP-UX box
>     Reporter: Olivier Montabert

>
> Hi,
> I encountered a bug (Null Pointer) that appears while 
> decoding xsd:int parameters from document/literal SOAP message on the server side. This problem appears with AXIS V1.1 and V1.2 RC1.
> You could find at the end of the mail a WSDL and a client sample, to reproduce the problem.
> Hereafter the encountered fault for
> AXIS V1.1
> ---------
>      [java] AxisFault
>      [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>      [java]  faultSubcode: 
>      [java]  faultString: java.lang.NullPointerException
>      [java]  faultActor: 
>      [java]  faultNode: 
>      [java]  faultDetail: 
>      [java] 	{http://xml.apache.org/axis/}stackTrace: AxisFault
>      [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>      [java]  faultSubcode: 
>      [java]  faultString: java.lang.NullPointerException
>      [java]  faultActor: 
>      [java]  faultNode: 
>      [java]  faultDetail: 
> AXIS V1.2 RC1
> -------------
>      [java] AxisFault
>      [java]  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
>      [java]  faultSubcode: 
>      [java]  faultString: java.lang.NullPointerException
>      [java]  faultActor: 
>      [java]  faultNode: 
>      [java]  faultDetail: 
>      [java] {http://xml.apache.org/axis/}hostname:hard.vbe.cpqcorp.net
> Regards,
> Olivier Montabert
> IntTest.wsdl
> ------------
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://IntTestService.wsdl" xmlns:inttest-wsdl="http://IntTestService.wsdl" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:sa-xsd="http://IntTest.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <wsdl:types>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://IntTest.xsd" xmlns:sa-xsd="http://IntTest.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
>    <!-- Types from inttest service -->
>    <xs:complexType name="RegistrationId">
>     <xs:sequence>
>      <xs:element name="registrationId" nillable="false" type="xsd:string">
>      </xs:element>
>      <xs:element name="version" nillable="false" type="xsd:string">
>      </xs:element>
>     </xs:sequence>
>    </xs:complexType>
> </xs:schema>
>   <xs:schema elementFormDefault="qualified"
> 	targetNamespace="http://IntTestService.wsdl">
>    <xs:element name="regId" type="sa-xsd:RegistrationId"/>
>    <xs:element name="maxCount" type="xsd:int"/>
> 	
>   </xs:schema>
>   </wsdl:types>
>    <wsdl:message name="getResponse">
>    </wsdl:message>
>    <wsdl:message name="getRequest">
>       <wsdl:part name="regId" element="inttest-wsdl:regId"/>
>       <wsdl:part name="maxCount" element="inttest-wsdl:maxCount"/>
>    </wsdl:message>
>    <wsdl:portType name="IntTest">
>       <wsdl:operation name="get" parameterOrder="regId maxCount">
>          <wsdl:input name="getRequest" message="inttest-wsdl:getRequest"/>
>          <wsdl:output name="getResponse" message="inttest-wsdl:getResponse"/>
>       </wsdl:operation>
>    </wsdl:portType>
>    <wsdl:binding name="IntTestSOAP" type="inttest-wsdl:IntTest">
>       <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>       <wsdl:operation name="get">
>          <wsdlsoap:operation soapAction="get"/>
>          <wsdl:input name="getRequest">
>             <wsdlsoap:body use="literal"/>
>          </wsdl:input>
>          <wsdl:output name="getResponse">
>             <wsdlsoap:body use="literal"/>
>          </wsdl:output>
>       </wsdl:operation>
>    </wsdl:binding>
>    <wsdl:service name="IntTestService">
>       <wsdl:port name="IntTest" binding="inttest-wsdl:IntTestSOAP">
>          <wsdlsoap:address location="http://localhost:1973/ovsqm/services/IntTestService"/>
>       </wsdl:port>
>    </wsdl:service>
> </wsdl:definitions>
> IntTestClient.java
> ------------------
> package inttest;
> import inttest.RegistrationId;
> import inttest.IntTestServiceLocator;
> /**
>  * Add the following method to the IntTestServiceLocator classes
>  * generated by Axis v1_1:
>  public void setIntTestEndpointAddress(String endpointAddress) {
>      IntTest_address = endpointAddress;
>  }
>  *
>  */   
> public class IntTestClient {
>     public static void main(String[] argv) {
> 	try {
> 	    IntTestServiceLocator intTestLocator = new IntTestServiceLocator();
> 	    System.out.println("Connect to endpoint:"+argv[0]);
> 	    intTestLocator.setIntTestEndpointAddress(argv[0]);
> 	    IntTest intTest 
> 		= intTestLocator.getIntTest();
> 	    RegistrationId regId = new RegistrationId("regId1234", "v1_0");
> 	    intTest.get(regId, 4);
> 	} catch (Exception e) {
> 	    e.printStackTrace();
> 	}
>     }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.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