在 Bluemix 上使用仪器时出现 NoClassDefFoundError

NoClassDefFoundError when using instrumentation on Bluemix

我正在尝试向我的 bluemix 应用程序添加一个 javaagent,该代理使用 Instrumentation。问题是,当我 运行 应用程序时,出现以下错误:

premain() - Instrumentation is already running
...
CWWKF0004E: An unknown exception occurred while installing or removing features. Exception: java.lang.NoClassDefFoundError: agent.ClassInstrumentorTransform
ERR     at com.ibm.ws.kernel.feature.internal.subsystem.SubsystemFeatureDefinitionImpl.setHeader(SubsystemFeatureDefinitionImpl.java)
ERR     at [internal classes]

我尝试创建另一个具有相同 Premain-ClassAgent-Class 结构但使用我自己的 类 的代理并且它有效,我尝试上传我自己的 Instrumentation 类 并使用 Class-Path 将 javaagent 指向它,但错误仍然出现。

有什么问题吗? 我怀疑 Bluemix 环境可能使用了 Instrumentation,有什么想法可以检查它以及如何解决相互依赖性吗?

根据错误消息,您似乎在试图从 javaagent 访问 class 的功能包中有一个 class,但您还没有将 javaagent 包添加到org.osgi.framework.bootdelegation 如知识中心主题中的 Specifying Liberty profile bootstrap properties" 主题所述。