2017-05-16 33 views
0

我想在ESB 5.0.0中使用更新版本的JsonPath,並且我得到以下錯誤是否有可能用json-path-2.2.0.jar替換com.jayway.jsonpath_0.8.1.wso2v1.jar

java.lang.NoClassDefFoundError: com/jayway/jsonpath/Configuration 
    at net.sample.<init>(FuzzyJsonProvider.groovy:15) 
    at net.sampel2(class.java:102) 
    at net.class2(class.java:67) 
    at net.class2(class.java:62) 
    at net.class4.mediate(class.java:75) 
    at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:84) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:97) 
    at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:59) 
    at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 
    at org.apache.synapse.rest.Resource.process(Resource.java:343) 
    at org.apache.synapse.rest.API.process(API.java:399) 
    at org.apache.synapse.rest.RESTRequestHandler.apiProcess(RESTRequestHandler.java:123) 
    at org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:101) 
    at org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:69) 
    at org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:304) 
    at org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:75) 
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) 
    at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:325) 
    at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:371) 
    at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:151) 
    at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.ClassNotFoundException: com.jayway.jsonpath.Configuration cannot be found by sample_1.0.2_SNAPSHOT_1.0.0 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:475) 
    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:357) 
    ... 24 more 

我試圖把第三方的jar在適當的lib文件夾,一旦服務器啓動第三方罐子中的dropins文件夾中顯示出來。任何想法,如果更換舊的jsonPath jar是可能的?

回答

1

簡短的回答是否定的,因爲一旦加載了lib,ESB並不更新包名稱空間。即com.jayway ... 0.8.1不會被2.2.0中的替換或更新

最好的方法是使用Shadow將您需要的庫打包到您自己的FatJar中,並將其加載到ESB中。

相關問題