[jboss-jira] [JBoss JIRA] Reopened: (JBAS-8023) jboss-classpool.jar and jboss-classpool-scoped.jar should be copied to client dir and included in jbossall-client.jar's MANIFEST.MF Class-Path

Jason Greene (JIRA) jira-events at lists.jboss.org
Thu Apr 21 14:27:22 EDT 2011


     [ https://issues.jboss.org/browse/JBAS-8023?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jason Greene reopened JBAS-8023:
--------------------------------



Due to feedback from the community, I have split the AS7 and AS6 projects and reopened all unscheduled AS6 issues that are a year or less old. This will make it easier community members to find and work on them.

Future releases beyond 6.1 can be done provided a community member steps up to coordinate them.

> jboss-classpool.jar and jboss-classpool-scoped.jar should be copied to client dir and included in jbossall-client.jar's MANIFEST.MF Class-Path
> ----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: JBAS-8023
>                 URL: https://issues.jboss.org/browse/JBAS-8023
>             Project: Legacy JBoss Application Server 6 
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Other
>    Affects Versions: 6.0.0.M3
>            Reporter: Ian Springer
>             Fix For: No Release
>
>
> We were getting the following exception when trying to connect from the RHQ Agent to AS M3 via JNP:
> Caused by: java.lang.NoClassDefFoundError:
> org/jboss/classpool/spi/ClassPoolRepositoryCallback
> at org.jboss.aop.AspectManager.initManager(AspectManager.java:267)
> at org.jboss.aop.AspectManager.instance(AspectManager.java:246)
> at org.jboss.aop.AspectManager.instance(AspectManager.java:235)
> at org.jboss.aop.proxy.ProxyFactory.createProxyCtClass(ProxyFactory.java:150)
> at org.jboss.aop.proxy.ProxyFactory.createProxyClass(ProxyFactory.java:119)
> at org.jboss.aop.proxy.ProxyFactory.createInterfaceProxy(ProxyFactory.java:96)
> at
> org.jboss.aop.proxy.MarshalledInterfaceProxy.readResolve(MarshalledInterfaceProxy.java:72)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1078)
> at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1779)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
> at java.rmi.MarshalledObject.get(MarshalledObject.java:159)
> at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java:72)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:771)
> at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:688)
> at javax.naming.InitialContext.lookup(InitialContext.java:409)
> at
> org.rhq.plugins.jbossas5.connection.AbstractProfileServiceConnectionProvider.lookup(AbstractProfileServiceConnectionProvider.java:81)
> at
> org.rhq.plugins.jbossas5.connection.RemoteProfileServiceConnectionProvider.doConnect(RemoteProfileServiceConnectionProvider.java:108)
> at
> org.rhq.plugins.jbossas5.connection.RemoteProfileServiceConnectionProvider.doConnect(RemoteProfileServiceConnectionProvider.java:43)
> at
> org.rhq.plugins.jbossas5.connection.AbstractProfileServiceConnectionProvider.connect(AbstractProfileServiceConnectionProvider.java:42)
> at
> org.rhq.plugins.jbossas5.ApplicationServerComponent.connectToProfileService(ApplicationServerComponent.java:401)
> at
> org.rhq.plugins.jbossas5.ApplicationServerComponent.start(ApplicationServerComponent.java:195)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:616)
> at
> org.rhq.core.pc.inventory.ResourceContainer$ComponentInvocationThread.call(ResourceContainer.java:525)
> ... 5 more
> Caused by: java.lang.ClassNotFoundException:
> org.jboss.classpool.spi.ClassPoolRepositoryCallback
> at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
> at
> org.rhq.core.pc.plugin.PluginClassLoader.loadClass(PluginClassLoader.java:63)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
> ... 36 more    
> Note, the exception occurs on a the call to InitialContext.lookup(). We never saw this in AS 5.x. I was able to get past the exception by adding JBOSS_HOME/lib/jboss-classpool.jar and JBOSS_HOME/lib/jboss-classpool-scoped.jar to the RHQ Agent's classpath. 
> So these two jars are now apparently required in the client classpath for the following basic JNP based lookup of the ProfileService to work:
>         Properties env = new Properties();
>         env.setProperty(Context.PROVIDER_URL, "jnp://127.0.0.1:1099/");
>         // Always use the non-login context factory, since we'll use JAAS for authentication if a username/password was
>         // provided.
>         env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");       
>         InitialContext initialContext;
>         try
>             initialContext = new InitialContext(env);
>         } catch (NamingException e) {
>             throw new RuntimeException("Failed to create JNDI InitialContext.", e);
>         }
>         ProfileService profileService = (ProfileService)initialContext.lookup("ProfileService");
>         
> Since this is the case, I think these two jars should be copied to JBOSS_HOME/client/ and also included in JBOSS_HOME/client/jbossall-client.jar's MANIFEST.MF Class-Path, to emphasize that they are needed for client connections and so that existing client code that uses jbossall-client.jar will not have to be updated to also include these two jars.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list