[JBoss JIRA] Created: (TEIID-1324) Deploy JOPR Plugin on JON/RHQ
by Cristiano Nicolai (JIRA)
Deploy JOPR Plugin on JON/RHQ
-----------------------------
Key: TEIID-1324
URL: https://jira.jboss.org/browse/TEIID-1324
Project: Teiid
Issue Type: Bug
Components: Jopr Plugin
Affects Versions: 7.2
Environment: Jboss EAP 5.1, JON 2.4, jon-plugin-pack-eap-2.4.0.GA
Reporter: Cristiano Nicolai
Assignee: Steven Hawkins
When deploying Teiid JOPR plugin on JON, when the agent try to run the plugin there are some missing classes.
Caused by: java.lang.NoClassDefFoundError: org/jboss/reflect/spi/TypeInfo
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at org.jboss.metatype.plugins.values.MetaValueFactoryBuilder$1.run(MetaValueFactoryBuilder.java:71)
at org.jboss.metatype.plugins.values.MetaValueFactoryBuilder$1.run(MetaValueFactoryBuilder.java:46)
at java.security.AccessController.doPrivileged(Native Method)
at org.jboss.metatype.plugins.values.MetaValueFactoryBuilder.<clinit>(MetaValueFactoryBuilder.java:45)
at org.jboss.metatype.api.values.MetaValueFactory.<clinit>(MetaValueFactory.java:41)
at org.teiid.rhq.admin.DQPManagementView.<clinit>(DQPManagementView.java:68)
at org.teiid.rhq.plugin.VDBComponent.getAvailability(VDBComponent.java:139)
at sun.reflect.GeneratedMethodAccessor50.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.rhq.core.pc.inventory.ResourceContainer$ComponentInvocationThread.call(ResourceContainer.java:525)
... 5 more
Basically the missing jar is jboss-metatype.jar.
I tried some classloader configuration including the missing jar in teiid-console-7.2.0.Beta1.jar/lib, but as it has dependent classes (jboss-managed.jar) that are loaded in jboss-as-5 RHQ plugin I couldn't find any solution without changing the jboss-as-5 code. Probably some sync with RHQ guys is needed because jboss-managed.jar depends on jboss-metatype.jar.
My workaround for this was a code change in ApplicationServerDiscoveryComponent to include the required jar from the AS installation.
private static final List<String> CLIENT_JARS = Arrays.asList(
// NOTE: The jbossall-client.jar aggregates a whole bunch of other jars from the client dir via its
// MANIFEST.MF Class-Path.
"client/jbossall-client.jar",
"client/trove.jar",
"client/javassist.jar",
"common/lib/jboss-security-aspects.jar",
"lib/jboss-managed.jar",
"lib/jboss-metatype.jar",
"lib/jboss-reflect.jar",
"lib/jboss-dependency.jar"
);
Fixing this class dependency the plugin start to require some Teiid client classes and to solve this I just copy the teiid-7.2.0.Beta1-client.jar to teiid-console-7.2.0.Beta1.jar/lib and redeploy the plugin.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira