Bugs item #848106, was opened at 2003-11-24 02:55
Message generated for change (Comment added) made by millz
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=848106&group_id=22866

Category: JBossSOAP
Group: v3.2
Status: Closed
Resolution: Works For Me
Priority: 5
Submitted By: Stephane Nicoll (stephane_nicoll)
Assigned to: Dr. Christoph Georg Jung (cgjung)
Summary: ClassCastException on SOAP calls upon redeployment

Initial Comment:
OS: Redhat linux 9
Java: SUN VM 1.4.1_02

The bug is reproductible with both JBoss 3.2.2 and 
3.2.3RC1

We have an application, packaged as an EAR and 
containing mainly:

- an EJB module JAR containing SessionBeans, Entity 
Beans and MDB
- an WSR module JARr containing a web service 
declaration
- Some librairies

The WSR module defines a web service that use a 
SessionBean to process incoming SOAP calls

Eveything runs fine but when we hot-redeploy the EAR, 
we have a ClassCastException and the web service does 
not work anymore (we need to restart JBoss to fix this).

My guesses is that this is an Axis bug but I already 
opened a bug @t apache without any feedback. We 
discussed this issue in the JBoss-user mailing list see the 
thread:

JBossNET hot deployment problem (ClassCastException)

This shows the classes / interfaces are OK after un 
hotdeploy (see the thread for test output suggested by 
Adrian)

What we have after the hot-redeploy at server side is 
the following:

2003-11-24 08:40:57,873 INFO  
[org.apache.axis.utils.bytecode.ParamNameExtractor] 
AXIS error:java.io.IOException: Unable to load bytecode 
for 
class "com.kiala.kserver.driver.nodesynch.NodeSyncherLo
cal"


AxisFault
 faultCode: 
{http://schemas.xmlsoap.org/soap/envelope/}
Server.userException
 faultSubcode:
 faultString: java.lang.ClassCastException
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace: 
java.lang.ClassCastException
        at 
com.sun.corba.se.internal.javax.rmi.PortableRemoteObjec
t.narrow(PortableRemoteObject.java:293)
        at javax.rmi.PortableRemoteObject.narrow
(PortableRemoteObject.java:134)
        at 
org.apache.axis.providers.java.EJBProvider.createRemote
EJB(EJBProvider.java:168)
        at 
org.apache.axis.providers.java.EJBProvider.makeNewServi
ceObject(EJBProvider.java:147)
        at 
org.apache.axis.providers.java.JavaProvider.getNewServi
ceObject(JavaProvider.java:261)
        at 
org.apache.axis.providers.java.JavaProvider.getServiceOb
ject(JavaProvider.java:138)
        at 
org.apache.axis.providers.java.JavaProvider.invoke
(JavaProvider.java:313)
        at 
org.apache.axis.strategies.InvocationStrategy.visit
(InvocationStrategy.java:71)
        at org.apache.axis.SimpleChain.doVisiting
(SimpleChain.java:150)
        at org.apache.axis.SimpleChain.invoke
(SimpleChain.java:120)
        at 
org.apache.axis.handlers.soap.SOAPService.invoke
(SOAPService.java:481)
        at org.apache.axis.server.AxisServer.invoke
(AxisServer.java:323)
        at 
org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:854)
        at javax.servlet.http.HttpServlet.service
(HttpServlet.java:760)
        at 
org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:339)

Should you need further info, let me know.

Regards,

Stephane Nicoll







----------------------------------------------------------------------

Comment By: Jason Miller (millz)
Date: 2004-03-12 16:21

Message:
Logged In: YES 
user_id=684546

I had the same hot-deploy issue (same issue, different 
error).  

I re-deploy both an EJB and its corresponding wsr file on each 
build cycle but the only one that gets hot-reloaded is the 
EJB.  When that happens, my SOAP clients then receive this 
error:

16:00:23,206 ERROR [LogInterceptor] EJBException:
javax.ejb.EJBException: Invalid invocation, check your 
deployment packaging, method=public abstract 
com.incogen.gp.data.entities.xml.EntityXmlController 
com.incogen.gp.data.entities.xml.EntityXmlControllerBean.crea
te() throws 
java.rmi.RemoteException,javax.ejb.CreateException
        at 
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.
invokeHome(StatelessSessionContainer.java:632)
        at 
org.jboss.resource.connectionmanager.CachedConnectionInter
ceptor.invokeHome(CachedConnectionInterceptor.java:205)
        at org.jboss.ejb.plugins.TxInterceptorBMT.invokeHome
(TxInterceptorBMT.java:54)
        at 
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invo
keHome(StatelessSessionInstanceInterceptor.java:51)
        at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome
(SecurityInterceptor.java:92)
        at org.jboss.ejb.plugins.LogInterceptor.invokeHome
(LogInterceptor.java:120)
        at 
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invokeHom
e(ProxyFactoryFinderInterceptor.java:93)
        at 
org.jboss.ejb.StatelessSessionContainer.internalInvokeHome
(StatelessSessionContainer.java:319)
        at org.jboss.ejb.Container.invoke(Container.java:720)
        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.jboss.mx.capability.ReflectedMBeanDispatcher.invoke
(ReflectedMBeanDispatcher.java:284)
        at org.jboss.mx.server.MBeanServerImpl.invoke
(MBeanServerImpl.java:546)
        at org.jboss.invocation.local.LocalInvoker.invoke
(LocalInvoker.java:101)
        at org.jboss.invocation.InvokerInterceptor.invoke
(InvokerInterceptor.java:90)
        at org.jboss.proxy.TransactionInterceptor.invoke
(TransactionInterceptor.java:46)
        at org.jboss.proxy.SecurityInterceptor.invoke
(SecurityInterceptor.java:45)
        at org.jboss.proxy.ejb.HomeInterceptor.invoke
(HomeInterceptor.java:173)
        at org.jboss.proxy.ClientContainer.invoke
(ClientContainer.java:85)
        at $Proxy37.create(Unknown Source)
        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.jboss.net.axis.server.EJBProvider.makeNewServiceObject
(EJBProvider.java:139)
        at 
org.apache.axis.providers.java.JavaProvider.getNewServiceObj
ect(JavaProvider.java:261)
        at 
org.apache.axis.providers.java.JavaProvider.getServiceObject
(JavaProvider.java:138)
        at org.apache.axis.providers.java.JavaProvider.invoke
(JavaProvider.java:313)
        at org.apache.axis.strategies.InvocationStrategy.visit
(InvocationStrategy.java:71)
        at org.apache.axis.SimpleChain.doVisiting
(SimpleChain.java:150)
        at org.apache.axis.SimpleChain.invoke
(SimpleChain.java:120)
        at org.apache.axis.handlers.soap.SOAPService.invoke
(SOAPService.java:481)
        at org.apache.axis.server.AxisServer.invoke
(AxisServer.java:323)
        at org.apache.axis.transport.http.AxisServlet.doPost
(AxisServlet.java:854)
        at javax.servlet.http.HttpServlet.service
(HttpServlet.java:760)
        at 
org.apache.axis.transport.http.AxisServletBase.service
(AxisServletBase.java:339)
        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$StandardPipelineVal
veContext.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$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:643)
        at 
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke
(JBossSecurityMgrRealm.java:220)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:553)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.CertificatesValve.invoke
(CertificatesValve.java:246)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at 
org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invok
e(ContainerStatsValve.java:76)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.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.StandardContext.invoke
(StandardContext.java:2417)
        at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:180)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:643)
        at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke
(ErrorDispatcherValve.java:171)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:172)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invok
e(SecurityAssociationValve.java:65)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.invokeNext(StandardPipeline.java:641)
        at org.apache.catalina.valves.AccessLogValve.invoke
(AccessLogValve.java:577)
        at 
org.apache.catalina.core.StandardPipeline$StandardPipelineVal
veContext.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$StandardPipelineVal
veContext.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:197)
        at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:781)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionH
andler.processConnection(Http11Protocol.java:549)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:605)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.ru
n(ThreadPool.java:677)
        at java.lang.Thread.run(Thread.java:534)

However, restarting the jboss (3.2.3) server fixes everything 
up.  I have "resolved" this issue by removing the wsr file from 
the deploy directory, waiting 20 seconds for the server to 
realize the change, and then moving the new version of the 
wsr file into the deploy dir.   I am using 
org.jboss.net.axis.server.EJBProvider in the xml config, BTW.


----------------------------------------------------------------------

Comment By: Stephane Nicoll (stephane_nicoll)
Date: 2003-12-01 03:47

Message:
Logged In: YES 
user_id=448198

Thanks a lot, this is working as expected.
Sorry for the noise (not-a-bug)

Regards,

Stephane

----------------------------------------------------------------------

Comment By: Dr. Christoph Georg Jung (cgjung)
Date: 2003-11-24 08:45

Message:
Logged In: YES 
user_id=175199

Our EJBprovider is derived from the axis one and ovverides 
only the necessary bits with regard to container integration.

We did not override the urn shortcuts for handlerclasses 
(would be an idea, maybe I will take this as a feature 
request ;-), so you would have to use

    <parameter name="handlerClass" 
value="org.jboss.net.axis.server.EJBProvider"/>

in your wsdd service declaration

But the wsdl should of course be the same, if it isnīt please 
let me know or file a bug!

CGJ


----------------------------------------------------------------------

Comment By: Stephane Nicoll (stephane_nicoll)
Date: 2003-11-24 08:15

Message:
Logged In: YES 
user_id=448198

I suspect this could be the problem :/

We didn't changed anything because our WSDL should not 
change at all. We have a C++ client running on a palm and 
the SOAP library is lacking of features. So if we change the 
WSDL a bit (names are changing) the client could not 
connect anymore.

I hope chaning the provider will note change the generation 
of the WSDL

Changing to provider java:/EJB is enough?

Regards,

Stephane

----------------------------------------------------------------------

Comment By: Dr. Christoph Georg Jung (cgjung)
Date: 2003-11-24 08:06

Message:
Logged In: YES 
user_id=175199

You should use the org.jboss.net.axis.server.EJBProvider 
instead of the axis one (this is what i suspect from your 
trace) as our provider is especially designed to cope with the 
classloading environment of jboss (and does not employ all 
the complicated jndi/narrow stuff which is faster).


CGJ
 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=376685&aid=848106&group_id=22866


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
JBoss-Development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to