I really don't know where to post this message, so post it here.
I have an ear containing sar archive. Ear uses own classloader repository 
defined in META-INF/jboss-app.xml. Sar contains MBean exporting service via 
RMI, all dependant classes are in the server lib directory.
If I put ear into deploy directory and start Jboss (v 4.0.4, the same applies 
to 4.0.5) everything works fine.
But if I redeploy ear, Jboss gives me NullPointerException (actually 
ClassNotFoundException) loading one of my classes.

Detailed stack trace

  | java.lang.NullPointerException
  |     at 
org.jboss.mx.loading.RepositoryClassLoader.findClass(RepositoryClassLoader.java:620)
  |     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  |     at 
org.jboss.mx.loading.RepositoryClassLoader.loadClassImpl(RepositoryClassLoader.java:464)
  |     at 
org.jboss.mx.loading.RepositoryClassLoader.loadClass(RepositoryClassLoader.java:405)
  |     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:154)
  |     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.readObject(ObjectInputStream.java:348)
  |     at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
  |     at 
sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
  |     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
  |     at sun.rmi.transport.Transport$1.run(Transport.java:153)
  |     at java.security.AccessController.doPrivileged(Native Method)
  |     at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
  |     at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
  |     at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
  |     at java.lang.Thread.run(Thread.java:595)
  |     at 
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
  |     at 
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
  |     at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343)
  |     at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
  |     at 
org.springframework.remoting.rmi.RmiServiceExporter.prepare(RmiServiceExporter.java:256)
  | 
(Yes, it's spring RMI exporter)

After class loading log investigation I've found


  | [2961838,RepositoryClassLoader,ScannerThread] Unregistering [EMAIL 
PROTECTED] 
url=file:/opt/jboss-4.0.4.GA/server/default/tmp/deploy/tmp34664arch.ear 
,addedOrder=33}
  | [2961838,UnifiedLoaderRepository3,ScannerThread] UnifiedLoaderRepository 
removed(true) [EMAIL PROTECTED] 
url=file:/opt/jboss-4.0.4.GA/server/default/tmp/deploy/tmp34664arch.ear 
,addedOrder=33}
  | 
  | ..............
  | 
  | [3014174,RepositoryClassLoader,RMI TCP Connection(1)-10.0.5.7] loadClass 
[EMAIL PROTECTED] url=null ,addedOrder=33} 
name=org.springframework.remoting.rmi.RmiInvocationWrapper_Stub, 
loadClassDepth=0
  | [3014174,RepositoryClassLoader,RMI TCP Connection(1)-10.0.5.7] 
loadClassImpl, name=org.springframework.remoting.rmi.RmiInvocationWrapper_Stub, 
resolve=false                                                                   
                                                           
[3014174,RepositoryClassLoader,RMI TCP Connection(1)-10.0.5.7] findClass, 
name=org.springframework.remoting.rmi.RmiInvocationWrapper_Stub
  | [3014175,RepositoryClassLoader,RMI TCP Connection(1)-10.0.5.7] loadClass 
[EMAIL PROTECTED] url=null ,addedOrder=33} 
name=org.springframework.remoting.rmi.RmiInvocationWrapper_Stub not found
  | 

In first section - class loader destroyed, in second used again to load classes 
(between these two steps there is not classloading recreation)

My guess - usage of unregistered classloader. Is it true? And how can I fix it?

Thank you!


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

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

Reply via email to