【发布时间】:2023-04-06 12:54:01
【问题描述】:
我创建了一个自定义中介。当我在 /repository/components/lib' 文件夹中部署 jar 时,它会引发以下异常。请检查下面的代码和异常。
我在 component/lib /component/dropins 中复制了 synapse-core_2.1.2.wso2v2,但这没有帮助。我认为我不需要复制这些库,因为它们是 WSO2 ESB 的核心库。
有人可以帮助我们为什么抛出这个异常吗?我在开发人员工作室中创建了这个中介并创建了 jar。它应该毫无问题地部署。
代码:
public boolean mediate(MessageContext synCtx) {
SynapseLog synLog = getLog(synCtx);
if (synLog.isTraceOrDebugEnabled()) {
synLog.traceOrDebug("Start : Cache mediator");
if (synLog.isTraceTraceEnabled()) {
synLog.traceTrace("Message : " + synCtx.getEnvelope());
}
}
ConfigurationContext cfgCtx =
((Axis2MessageContext) synCtx).getAxis2MessageContext().getConfigurationContext();
例外:
java.lang.NoClassDefFoundError: org/apache/synapse/core/axis2/Axis2MessageContext
at com.span.custom.cache.DistributedCacheMediator.mediate(DistributedCacheMediator.java:82)
at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77)
at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47)
at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131)
at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:411)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.ClassNotFoundException: org.apache.synapse.core.axis2.Axis2MessageContext
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 13 more
【问题讨论】:
标签: wso2 esb classnotfound