axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Davanum Srinivas <dava...@gmail.com>
Subject Re: Missing TypeMapping removal when undeploy service ?
Date Thu, 28 Oct 2004 12:42:31 GMT
Yes, this is a bug/feature. I think the problem is that we don't keep
track of which mappings were added for which service. So it's
difficult to distinguish between the global mappings and service
specific mappings. Am +1 to include this enhancement (as long as you
are willing to help fix it by submitting a patch :).

-- dims


On Thu, 28 Oct 2004 14:41:32 +0200, Guillaume Sauthier
<guillaume.sauthier@objectweb.org> wrote:
> Hi all,
> 
> I saw in axis sources that when we deploy a service, there are several
> things done. One of them is to register type mapping.
> When a service a undeployed, reverse things as done except unregistering
> type mapping.
> 
> The scenario is the following :
> I create a ClassLoader for each service I deploy (contains the Bean A
> class), so deploying a service for the first will create a new
> ClassLoader (say CL_1), Axis Admin class will merge my deploy.wsdd into
> the registry and load my described Beans (say A loaded from CL_1).
> But if I undeploy the service, TypeMapping is not changed, not removed
> (we're stuck with Bean A from CL1).
> To finish, I redeploy the same service (creating a new ClassLoader
> (CL_B)), but TypeMapping for the service is not changed (Bean A from
> CL_1). And the following error comes when I call the deployed service,
> while deserializing Bean A : DeserializerImpl has created the right
> object instance (Bean A from CL_2) but the setter/getter method invoked
> come from Bean A from CL_1 !!! And thus, that causes the following
> IllegalArgumentException !!!
> 
> Is this a Bug in Axis ? I think this problem could be resolved if
> undeployment of services removed the typeMapping too !
> I think that this correction should not break any existing applications ...
> 
> Here is the StackTrace :
> 
> 2004-10-28 11:34:58,762 : BeanPropertyTarget.set : Could not convert
> java.lang.Integer to bean field 'areaCode', type int
> 2004-10-28 11:34:58,795 : AxisServlet.processAxisFault : AxisFault:
> AxisFault
> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
> faultSubcode:
> faultString: java.lang.IllegalArgumentException: object is not an
> instance of declaring class
> faultActor:
> faultNode:
> faultDetail:
> 
> {http://xml.apache.org/axis/}stackTrace:java.lang.IllegalArgumentException:
> object is not an instance of declaring class
>      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:324)
>      at
> org.apache.axis.utils.BeanPropertyDescriptor.set(BeanPropertyDescriptor.java:117)
> 
>      at
> org.apache.axis.encoding.ser.BeanPropertyTarget.set(BeanPropertyTarget.java:89)
> 
>      at
> org.apache.axis.encoding.DeserializerImpl.valueComplete(DeserializerImpl.java:248)
> 
>      at
> org.apache.axis.encoding.DeserializerImpl.endElement(DeserializerImpl.java:511)
> 
>      at
> org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1077)
> 
>      at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
> 
>      at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:845)
> 
>      at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:371)
> 
>      at
> org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1038)
> 
>      at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
> 
>      at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:845)
> 
>      at
> org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java:371)
> 
>      at
> org.apache.axis.encoding.ser.BeanDeserializer.startElement(BeanDeserializer.java:130)
> 
>      at
> org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1038)
> 
>      at
> org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:159)
> 
>      at
> org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:845)
> 
>      at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:198)
>      at org.apache.axis.message.RPCElement.getParams(RPCElement.java:323)
>      at
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:146)
> 
>      at bpel.engine.BPELProvider.processMessage(BPELProvider.java:109)
>      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:455)
>      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:763)
>      at
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:301)
> 
>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
>  ...
> 
> Regards
> Charles & Guillaume
> 


-- 
Davanum Srinivas - http://webservices.apache.org/~dims/

Mime
View raw message