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---