2016-05-26 6 views
2

ich die folgende Fehlermeldung erhalten, während in meinem Ohr einsetzen. Die Ausnahme tritt während der elastischen Suchverbindung auf. In meinem Ohr habe ich mit Guave Version 18. Welche die empfohlene Version für ES ist 2.0+ (Ich verwende ES 2.3.3)java.lang.NoSuchMethodError während Elastic Suche starten

weblogic.application.ModuleException: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor; 
     at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124) 
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:216) 
.....  
Caused By: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor; 
     at org.elasticsearch.threadpool.ThreadPool.<clinit>(ThreadPool.java:190) 
     at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:131) 
     at com.ventyx.servicesuite.dispatcher.ESClientMgr.connect(ESClientMgr.java:80) 

....

In den meisten der Suche sein erwähnt das ist, weil Guave Konflikte jagt.

java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor

So habe ich hinzugefügt -verbose: class als Java-Option beim Laufen meine weblogic zu sehen, ob alte Version von Guave geladen wird

Aber zu meiner Überraschung es keine Guave jar geladen fanden immer . Aber ich vermute, dass in weblogic.server.merged.jar Google Bibliotheken vorverpackt sind.

Also meine Frage ist Gibt es eine Möglichkeit, wir könnten den Container die JAR-Dateien aus der Anwendung statt Weblogic verwenden?

+0

Nach einiger Suche fand ich eine Antwort in http://stackoverflow.com/questions/13362523/weblogic-guava-issue-when-deploying-application zu diesem Thema. Ich muss es ausprobieren –

Antwort

0

Ich konnte dieses Problem beheben, indem Sie einen WebLogic-application.xml mit bevorzugen-application-Paketen an mein Ohr hinzufügen.

<?xml version="1.0" encoding="UTF-8"?> 
<weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application"      
         xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.0/weblogic-application.xsd"> 
    <prefer-application-packages> 
     <package-name>com.google.common.*</package-name> 
    </prefer-application-packages> 
</weblogic-application>