Using JBoss Portal 2.6.4 with JDK1.5.0

It seems to me that RMI class loading does not work with my configuration
I gave a security policy to the jboss to allow for RMI class loading.
And i gave the loaderport parameter to the DefaultEjb3Connector as described 
here [URL]http://www.jboss.com/index.html?module=bb&op=viewtopic&t=126930[/URL]


  |    <mbean code="org.jboss.remoting.transport.Connector"
  |           
name="jboss.remoting:type=Connector,name=DefaultEjb3Connector,handler=ejb3">
  |       <depends>jboss.aop:service=AspectDeployer</depends>
  |       <!--attribute 
name="InvokerLocator">socket://${jboss.bind.address}:3873/?loaderport=4873</attribute-->
  |      
  |       <attribute name="Configuration">
  |               <config>
  |                <invoker transport="socket">
  |                        <attribute 
name="serverBindAddress">${jboss.bind.address}</attribute>
  |                        <attribute name="serverBindPort">3873</attribute>    
          
  |                        <attribute name="numAcceptThreads">1</attribute>
  |                        <attribute name="maxPoolSize">300</attribute>
  |                        <attribute name="clientMaxPoolSize" 
isParam="true">50</attribute>
  |                        <attribute name="timeout" 
isParam="true">60000</attribute>
  |                        <attribute name="loaderport" 
isParam="true">4873</attribute>
  |                        <attribute name="serializationtype" 
isParam="true">jboss</attribute>   
  |                        <attribute name="byvalue" 
isParam="true">true</attribute>  
  |                        <attribute name="force_remote" 
isParam="true">true</attribute>                          
  |           </invoker>
  |                 <handlers>
  |             <handler 
subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler>
  |          </handlers>
  |               </config>
  |        
  |       </attribute>
  |    </mbean>
  | 

I get a ClassNotFoundException for the implementing ejb class of the method 
parameter, but I expected the class to be loaded via RMI loader (via WebService 
on localhost:8083). Is there something else that I need to configure?


  | Caused by: java.lang.ClassNotFoundException: 
palmyra.baustein.geschaeftsverwaltung.antrag.ProtokollVBeanEjb
  |         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  |         at java.security.AccessController.doPrivileged(Native Method)
  |         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  |         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  |         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  |         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  |         at java.lang.Class.forName0(Native Method)
  |         at java.lang.Class.forName(Class.java:242)
  |         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:430)
  |         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
  |         at 
java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
  |         at 
org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
  |         at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
  |         at 
sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
  |         at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
  |         at 
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
  |         at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
  |         at 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
  |         at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
  |         at 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
  |         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
  |         at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
  |         at 
org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:267)
  | 

Let me explain the overall situation.
Consider this: one ejb A gets another ejb B injected via @EJB annotation.
ejb A is thus owning a proxy to ejb B.
the respective classes are deployed in two ears that are isolated ie. have 
their own class loader repositories declared in jboss-app.xml
In order to call methods on B, the ear with ejb A contains the ejb interface 
and parameter classes of ejb B.

Now while there is no problem ejb A calling methods on ejb B, B cannot call on 
A vice versa, because the ear of ejb B does not contain the classes of ejb A. 
But I want ejb B to be able to callback its owning ejb A. I therefore 
transmitted the proxy of ejb A to ejb B. 

class EjbB {
  |  public void setOwner(MyCommonInterface bean) { .. }
  | 


  | class MyInterceptor{
  |   @Resource
  |     SessionContext sessionContext;
  |  void propagateOwner() {
  |       iface = sessionContext.getInvokedBusinessInterface();
  |       MyCommonInterface owner = (MyCommonInterface)     
  |                  sessionContext.getBusinessObject(iface);   
  |       EventListener listener = (EventListener) new InitialContext()         
                                .lookup("my-ear/EventListenerEjb/remote");
  |     owner.setEventListener(listener);
  |      // the next line throw ClassNotFoundException
  |         listener.setReceiver(vbean);        
  |       
  | 


  | 14:14:39,978 ERROR [VBeanInterceptor] VBean: [EMAIL PROTECTED]: 
java.lang.Runti
  | meException: java.lang.ClassNotFoundException: 
palmyra.baustein.geschaeftsverwaltung.antrag.ProtokollVBeanEjb 
java.lang.ClassNotFo
  | undException: palmyra.baustein.geschaeftsverwaltung.antrag.ProtokollVBeanEjb
  | java.lang.RuntimeException: java.lang.ClassNotFoundException: 
palmyra.baustein.geschaeftsverwaltung.antrag.ProtokollVBeanEjb
  |         at 
org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:276)
  |         at 
org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:328)
  |         at 
org.jboss.ejb3.remoting.IsLocalInterceptor.invokeLocal(IsLocalInterceptor.java:81)
  |         at 
org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:72)
  |         at 
org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
  |         at 
org.jboss.ejb3.stateful.StatefulRemoteProxy.invoke(StatefulRemoteProxy.java:139)
  |         at $Proxy400.setReceiver(Unknown Source)
  |         at 
palmyra.core.vorgangssteuerung.interceptor.VBeanInterceptor.doEJBAnnotation(VBeanInterceptor.java:125)
  |         at 
palmyra.core.vorgangssteuerung.interceptor.VBeanInterceptor.postConstruct(VBeanInterceptor.java:97)
  | 


  | Caused by: java.lang.ClassNotFoundException: 
palmyra.baustein.geschaeftsverwaltung.antrag.ProtokollVBeanEjb
  |         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
  |         at java.security.AccessController.doPrivileged(Native Method)
  |         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
  |         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  |         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
  |         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
  |         at java.lang.Class.forName0(Native Method)
  |         at java.lang.Class.forName(Class.java:242)
  |         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:430)
  |         at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
  |         at 
java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
  |         at 
org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91)
  |         at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
  |         at 
sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
  |         at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)
  |         at 
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1466)
  |         at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1699)
  |         at 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
  |         at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
  |         at 
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
  |         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
  |         at java.rmi.MarshalledObject.get(MarshalledObject.java:135)
  |         at 
org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:267)
  | 



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4142698#4142698

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4142698
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to