From: SourceForge.net <no...@so...> - 2003-05-19 15:47:39
|
Bugs item #739739, was opened at 2003-05-19 01:47 Message generated for change (Comment added) made by starksm You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=739739&group_id=22866 Category: JBossServer Group: v3.2 Status: Open >Resolution: Accepted Priority: 5 Submitted By: Bernd Zeitler (frito) >Assigned to: Scott M Stark (starksm) Summary: MarshalException using ByValueInvoker Initial Comment: I wanted to configure JBoss 3.2.0 (JDK 1.4.1_01) to be able to do bean calls from one ejb packed in an ear to another ejb packed in another ear where both ears are using their own loader repository. The standard configuration of JBoss brings up a ClassCastException while narrowing the home interface. So I tried to use the ByValueInvokerInterceptor this way: 1. I provided a new invoker-proxy-binding in my standardjboss.xml for SFSB and SLSB, copying the standard configuration and changing the InvokerInterceptor to ByValueInvokerInterceptor. 2. I provided a invoker-bindings entry with my jboss.xml where I wanted this invoker to be used for. When I try this without transaction, everything works fine (I tried trans-attribute NotSupported). When my SB needs a transaction (I tried it with trans-attribute Required), I can see the following Exception: java.rmi.MarshalException: error marshalling arguments; nested exception is: java.io.NotSerializableException: org.jboss.tm.TransactionImpl at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:129) at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke (Unknown Source) at org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.inv oke(JRMPInvokerProxy.java:139) at org.jboss.invocation.ByValueInvokerInterceptor.invoke(By ValueInvokerInterceptor.java:65) at org.jboss.proxy.TransactionInterceptor.invoke(Transactio nInterceptor.java:77) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterc eptor.java:80) at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterce ptor.java:175) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.jav a:82) at $Proxy64.create(Unknown Source) at test.cltest.bean1.Bean1.doIt(Bean1.java:79) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth odAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegat ingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.jboss.ejb.StatelessSessionContainer$ContainerInterce ptor.invoke(StatelessSessionContainer.java:629) at org.jboss.resource.connectionmanager.CachedConnection Interceptor.invoke(CachedConnectionInterceptor.java:18 6) at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor .invoke(StatelessSessionInstanceInterceptor.java:72) at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(A bstractTxInterceptor.java:84) at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactio ns(TxInterceptorCMT.java:243) at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxIntercep torCMT.java:104) at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityI nterceptor.java:117) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogIntercepto r.java:191) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invok e(ProxyFactoryFinderInterceptor.java:122) at org.jboss.ejb.StatelessSessionContainer.internalInvoke(St atelessSessionContainer.java:322) at org.jboss.ejb.Container.invoke(Container.java:674) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth odAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegat ingMethodAccessorImpl.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(MBeanServer Impl.java:549) at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMP Invoker.java:359) at sun.reflect.GeneratedMethodAccessor95.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Delegat ingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRe f.java:261) at sun.rmi.transport.Transport$1.run(Transport.java:148) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:14 4) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCP Transport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.ru n(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:536) Caused by: java.io.NotSerializableException: org.jboss.tm.TransactionImpl at java.io.ObjectOutputStream.writeObject0(ObjectOutputS tream.java:1054) at java.io.ObjectOutputStream.writeObject(ObjectOutputStr eam.java:278) at org.jboss.invocation.MarshalledInvocation.writeExternal(M arshalledInvocation.java:381) at java.io.ObjectOutputStream.writeExternalData(ObjectOut putStream.java:1262) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectO utputStream.java:1243) at java.io.ObjectOutputStream.writeObject0(ObjectOutputS tream.java:1052) at java.io.ObjectOutputStream.writeObject(ObjectOutputStr eam.java:278) at sun.rmi.server.UnicastRef.marshalValue(UnicastRef.java:2 65) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:124) It seems, that the proxy is holding a transaction during marshalling. Didn't track this down further more for now. BTW, shouldn't the standard invoker be able to handle the improvement by itself ("local" call, when bean to bean call in the same repository, real remote call with marshalling if not)? Greetings, Frito ---------------------------------------------------------------------- >Comment By: Scott M Stark (starksm) Date: 2003-05-19 08:47 Message: Logged In: YES user_id=175228 The invokers should not have to deal with class loading knowledge as this ties them to features that are outside of the scope of handling the transport. Just because a call spans loaders does not mean it cannot be done by reference. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=739739&group_id=22866 |