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 bu...@apache.org on 2002/09/17 17:18:49 UTC

DO NOT REPLY [Bug 12741] New: - Multithreaded Axis client causes serialization exceptions in Axis service

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12741>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=12741

Multithreaded Axis client causes serialization exceptions in Axis service

           Summary: Multithreaded Axis client causes serialization
                    exceptions in Axis service
           Product: Axis
           Version: current (nightly)
          Platform: PC
        OS/Version: Windows NT/2K
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Serialization/Deserialization
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: avolanis@rsasecurity.com


Running a multithreaded Axis client with 50 threads each doing 50 sessions with 
the web service causes the following exception stack trace to appear three to 
five times in the duration of the test. The total operations would be 2500. The 
service is a session based service and the clients are set to maintain 
sessions. During each session the clients will perform 4 calls for each round, 
startAuth, continueAuth, continueAuth, and endAuth. The WSDL and WSDD files for 
the service are attached. The clients are generated by WSDL2Java, the service 
is just a class calling an EJB backend to do the work.

The server is a 4 CPU Intel Xeon 2.4GHz running Win2K Advanced Server.
The client is a 800MHz Intel Pentium III running Win2K Pro.
Axis is installed on BEA WebLogic 6.1 SP3.
The Axis build used is nightly 9/16/2002.
Here is the stack trace, WSDD and WSDL files for the service:

---Stack Trace------Stack Trace------Stack Trace---
<Sep 16, 2002 4:41:50 PM EDT> <Error> <HTTP> <[WebAppServletContext
(255088,axis,/axis)] Servlet failed with IOException
AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.userException
 faultString: java.io.IOException: javax.xml.rpc.JAXRPCException: unable to get 
serializer for class org.apache.axis.encoding.ser.BeanSerializer
 faultActor: null
 faultDetail:
        stackTrace: java.io.IOException: javax.xml.rpc.JAXRPCException: unable 
to get serializer for class org.apache.axis.encoding.ser.BeanSerializer
        at org.apache.axis.encoding.ser.BeanSerializer.serialize
(BeanSerializer.java:258)
        at org.apache.axis.encoding.SerializationContextImpl.serializeActual
(SerializationContextImpl.java:1209)
        at org.apache.axis.encoding.SerializationContextImpl.serialize
(SerializationContextImpl.java:754)
        at org.apache.axis.message.RPCParam.serialize(RPCParam.java:225)
        at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:309)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:142)
        at org.apache.axis.message.SOAPEnvelope.outputImpl
(SOAPEnvelope.java:401)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:276)
        at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:482)
        at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:373)
        at org.apache.axis.Message.getContentType(Message.java:400)
        at org.apache.axis.transport.http.AxisServlet.sendResponse
(AxisServlet.java:789)
        at org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:723)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:265)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:200)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet
(WebAppServletContext.java:2546)
        at weblogic.servlet.internal.ServletRequestImpl.execute
(ServletRequestImpl.java:2260)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

<Sep 16, 2002 4:42:11 PM EDT> <Error> <HTTP> <[WebAppServletContext
(255088,axis,/axis)] Servlet failed with IOException
AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.userException
 faultString: java.io.IOException: java.io.IOException: No serializer found for 
class com.rsa.csf.clientservice.authenticationapi.RequiredAPIParameter in 
registry org.apache.axis.encoding.TypeMappingImpl@476bca
 faultActor: null
 faultDetail:
        stackTrace: java.io.IOException: java.io.IOException: No serializer 
found for class 
com.rsa.csf.clientservice.authenticationapi.RequiredAPIParameter in registry 
org.apache.axis.encoding.TypeMappingImpl@476bca
        at org.apache.axis.encoding.ser.BeanSerializer.serialize
(BeanSerializer.java:258)
        at org.apache.axis.encoding.SerializationContextImpl.serializeActual
(SerializationContextImpl.java:1209)
        at org.apache.axis.encoding.SerializationContextImpl.serialize
(SerializationContextImpl.java:754)
        at org.apache.axis.message.RPCParam.serialize(RPCParam.java:225)
        at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:309)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:142)
        at org.apache.axis.message.SOAPEnvelope.outputImpl
(SOAPEnvelope.java:401)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:276)
        at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:482)
        at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:373)
        at org.apache.axis.Message.getContentType(Message.java:400)
        at org.apache.axis.transport.http.AxisServlet.sendResponse
(AxisServlet.java:789)
        at org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:723)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:265)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:200)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet
(WebAppServletContext.java:2546)
        at weblogic.servlet.internal.ServletRequestImpl.execute
(ServletRequestImpl.java:2260)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

<Sep 16, 2002 4:43:25 PM EDT> <Error> <HTTP> <[WebAppServletContext
(255088,axis,/axis)] Servlet failed with IOException
AxisFault
 faultCode: {http://xml.apache.org/axis/}Server.userException
 faultString: java.io.IOException: javax.xml.rpc.JAXRPCException: unable to get 
serializer for class org.apache.axis.encoding.ser.BeanSerializer
 faultActor: null
 faultDetail:
        stackTrace: java.io.IOException: javax.xml.rpc.JAXRPCException: unable 
to get serializer for class org.apache.axis.encoding.ser.BeanSerializer
        at org.apache.axis.encoding.ser.BeanSerializer.serialize
(BeanSerializer.java:258)
        at org.apache.axis.encoding.SerializationContextImpl.serializeActual
(SerializationContextImpl.java:1209)
        at org.apache.axis.encoding.SerializationContextImpl.serialize
(SerializationContextImpl.java:754)
        at org.apache.axis.message.RPCParam.serialize(RPCParam.java:225)
        at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:309)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:142)
        at org.apache.axis.message.SOAPEnvelope.outputImpl
(SOAPEnvelope.java:401)
        at org.apache.axis.message.MessageElement.output
(MessageElement.java:740)
        at org.apache.axis.SOAPPart.writeTo(SOAPPart.java:276)
        at org.apache.axis.SOAPPart.getAsString(SOAPPart.java:482)
        at org.apache.axis.SOAPPart.getAsBytes(SOAPPart.java:373)
        at org.apache.axis.Message.getContentType(Message.java:400)
        at org.apache.axis.transport.http.AxisServlet.sendResponse
(AxisServlet.java:789)
        at org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:723)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:335)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:265)
        at weblogic.servlet.internal.ServletStubImpl.invokeServlet
(ServletStubImpl.java:200)
        at weblogic.servlet.internal.WebAppServletContext.invokeServlet
(WebAppServletContext.java:2546)
        at weblogic.servlet.internal.ServletRequestImpl.execute
(ServletRequestImpl.java:2260)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

---Stack Trace------Stack Trace------Stack Trace---
---WSDD------WSDD------WSDD------WSDD------WSDD---
<deployment xmlns="http://xml.apache.org/axis/wsdd/" 
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
    <service name="AuthenticationAPI" provider="java:RPC">
        
<namespace>http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI<
/namespace>
        <parameter name="className" 
value="com.rsa.csf.clientservice.authenticationapi.AuthenticationAPI" />
        <parameter name="allowedMethods" value="startAuth continueAuth 
endAuth" />
        <parameter name="scope" value="Session" />
        <parameter name="sendMultiRefs" value="false" />
        <operation name="startAuth" returnQName="return" 
returnType="authapi:AuthenticationAPIResponse" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API">
            <parameter name="request" type="authapi:AuthenticationAPIRequest" />
        </operation>
        <operation name="continueAuth" returnQName="return" 
returnType="authapi:AuthenticationAPIResponse" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API">
            <parameter name="request" type="authapi:AuthenticationAPIRequest" />
        </operation>
        <operation name="endAuth" returnQName="return" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API">
            <parameter name="request" type="authapi:AuthenticationAPIRequest" />
        </operation>
        <typeMapping 
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
qname="authapi:ArrayOfAPIParameter" 
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" 
type="java:com.rsa.csf.clientservice.authenticationapi.APIParameter[]" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <typeMapping 
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
qname="authapi:ArrayOfRequiredAPIParameter" 
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" 
type="java:com.rsa.csf.clientservice.authenticationapi.RequiredAPIParameter[]" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <typeMapping 
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory" 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
qname="authapi:ArrayOfString" 
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory" 
type="java:java.lang.String[]" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <beanMapping 
languageSpecificType="java:com.rsa.csf.clientservice.authenticationapi.Authentic
ationAPIRequest" qname="authapi:AuthenticationAPIRequest" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <beanMapping 
languageSpecificType="java:com.rsa.csf.clientservice.authenticationapi.Authentic
ationAPIResponse" qname="authapi:AuthenticationAPIResponse" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <beanMapping 
languageSpecificType="java:com.rsa.csf.clientservice.authenticationapi.APIParame
ter" qname="authapi:APIParameter" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
        <beanMapping 
languageSpecificType="java:com.rsa.csf.clientservice.authenticationapi.RequiredA
PIParameter" qname="authapi:RequiredAPIParameter" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" />
    </service>
</deployment>
---WSDD------WSDD------WSDD------WSDD------WSDD---
---WSDL------WSDL------WSDL------WSDL------WSDL---
<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions 
targetNamespace="http://rsa.com/csf/clientservice/authenticationapi/Authenticati
onAPI" xmlns="http://schemas.xmlsoap.org/wsdl/" 
xmlns:apachesoap="http://xml.apache.org/xml-soap" 
xmlns:impl="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI
-impl" 
xmlns:intf="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI
" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:authapi="http://rsa.com/csf/clientservice/authenticationapi/Authentication
API" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <schema 
targetNamespace="http://rsa.com/csf/clientservice/authenticationapi/Authenticati
onAPI" xmlns="http://www.w3.org/2001/XMLSchema">
            <import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
            <complexType name="AuthenticationAPIRequest">
                <sequence>
                    <element name="authContext" nillable="true" 
type="xsd:string" />
                    <element name="XMLTicket" nillable="true" 
type="xsd:string" />
                    <element name="lang" nillable="true" type="xsd:string" />
                    <element name="country" nillable="true" type="xsd:string" />
                    <element name="policy" nillable="true" type="xsd:string" />
                    <element name="resource" nillable="true" 
type="xsd:string" />
                    <element name="parameters" nillable="true" 
type="authapi:ArrayOfAPIParameter" />
                </sequence>
            </complexType>
            <complexType name="APIParameter">
                <sequence>
                    <element name="id" nillable="true" type="xsd:string" />
                    <element name="value" nillable="true" type="xsd:string" />
                </sequence>
            </complexType>
            <complexType name="ArrayOfAPIParameter">
                <complexContent>
                    <restriction base="soapenc:Array">
                        <attribute ref="soapenc:arrayType" 
wsdl:arrayType="authapi:APIParameter[]" />
                    </restriction>
                </complexContent>
            </complexType>
            <element name="AuthenticationAPIRequest" nillable="true" 
type="authapi:AuthenticationAPIRequest" />
            <complexType name="AuthenticationAPIResponse">
                <sequence>
                    <element name="authContext" nillable="true" 
type="xsd:string" />
                    <element name="XMLTicket" nillable="true" 
type="xsd:string" />
                    <element name="authStatus" type="xsd:int" />
                    <element name="info" nillable="true" type="xsd:string" />
                    <element name="messages" nillable="true" 
type="authapi:ArrayOfString" />
                    <element name="requiredParameters" nillable="true" 
type="authapi:ArrayOfRequiredAPIParameter" />
                </sequence>
            </complexType>
            <complexType name="RequiredAPIParameter">
                <sequence>
                    <element name="type" type="xsd:int" />
                    <element name="id" nillable="true" type="xsd:string" />
                    <element name="min" type="xsd:int" />
                    <element name="max" type="xsd:int" />
                    <element name="prompt" nillable="true" type="xsd:string" />
                    <element name="defaultValue" nillable="true" 
type="xsd:string" />
                    <element name="confirmationMessage" nillable="true" 
type="xsd:string" />
                </sequence>
            </complexType>
            <complexType name="ArrayOfRequiredAPIParameter">
                <complexContent>
                    <restriction base="soapenc:Array">
                        <attribute ref="soapenc:arrayType" 
wsdl:arrayType="authapi:RequiredAPIParameter[]" />
                    </restriction>
                </complexContent>
            </complexType>
            <complexType name="ArrayOfString">
                <complexContent>
                    <restriction base="soapenc:Array">
                        <attribute ref="soapenc:arrayType" 
wsdl:arrayType="xsd:string[]" />
                    </restriction>
                </complexContent>
            </complexType>
            <element name="AuthenticationAPIResponse" nillable="true" 
type="authapi:AuthenticationAPIResponse" />
        </schema>
    </wsdl:types>
    <wsdl:message name="continueAuthResponse">
        <wsdl:part name="return" type="authapi:AuthenticationAPIResponse" />
    </wsdl:message>
    <wsdl:message name="continueAuthRequest">
        <wsdl:part name="request" type="authapi:AuthenticationAPIRequest" />
    </wsdl:message>
    <wsdl:message name="startAuthResponse">
        <wsdl:part name="return" type="authapi:AuthenticationAPIResponse" />
    </wsdl:message>
    <wsdl:message name="endAuthResponse" />
    <wsdl:message name="startAuthRequest">
        <wsdl:part name="request" type="authapi:AuthenticationAPIRequest" />
    </wsdl:message>
    <wsdl:message name="endAuthRequest">
        <wsdl:part name="request" type="authapi:AuthenticationAPIRequest" />
    </wsdl:message>
    <wsdl:portType name="AuthenticationAPI">
        <wsdl:operation name="startAuth" parameterOrder="request">
            <wsdl:input message="intf:startAuthRequest" 
name="startAuthRequest" />
            <wsdl:output message="intf:startAuthResponse" 
name="startAuthResponse" />
        </wsdl:operation>
        <wsdl:operation name="continueAuth" parameterOrder="request">
            <wsdl:input message="intf:continueAuthRequest" 
name="continueAuthRequest" />
            <wsdl:output message="intf:continueAuthResponse" 
name="continueAuthResponse" />
        </wsdl:operation>
        <wsdl:operation name="endAuth" parameterOrder="request">
            <wsdl:input message="intf:endAuthRequest" name="endAuthRequest" />
            <wsdl:output message="intf:endAuthResponse" 
name="endAuthResponse" />
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="AuthenticationAPISoapBinding" 
type="intf:AuthenticationAPI">
        <wsdlsoap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="startAuth">
            <wsdlsoap:operation soapAction="" />
            <wsdl:input name="startAuthRequest">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:input>
            <wsdl:output name="startAuthResponse">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="continueAuth">
            <wsdlsoap:operation soapAction="" />
            <wsdl:input name="continueAuthRequest">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:input>
            <wsdl:output name="continueAuthResponse">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="endAuth">
            <wsdlsoap:operation soapAction="" />
            <wsdl:input name="endAuthRequest">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:input>
            <wsdl:output name="endAuthResponse">
                <wsdlsoap:body 
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
namespace="http://rsa.com/csf/clientservice/authenticationapi/AuthenticationAPI"
 use="encoded" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="AuthenticationAPIService">
        <wsdl:port binding="intf:AuthenticationAPISoapBinding" 
name="AuthenticationAPI">
            <wsdlsoap:address 
location="http://localhost:7001/axis/services/AuthenticationAPI" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
---WSDL------WSDL------WSDL------WSDL------WSDL---