Deploy JOPR Plugin on JON/RHQ
-----------------------------
Key: TEIID-1324
URL:
https://issues.jboss.org/browse/TEIID-1324
Project: Teiid
Issue Type: Bug
Components: Jopr Plugin
Affects Versions: 7.1
Environment: Jboss EAP 5.1, JON 2.4, jon-plugin-pack-eap-2.4.0.GA
Reporter: Cristiano Nicolai
Assignee: Ted Jones
Fix For: 7.1.1
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.
For more information on JIRA, see: