弹性搜索开始时的java.lang.NoSuchMethodError

时间:2016-05-26 05:06:56

标签: java elasticsearch weblogic weblogic12c

在我的EAR中部署时出现以下错误。在弹性搜索连接期间会出现异常。在我的EAR中我使用了番石榴版本18.这是ES 2.0+的推荐版本(我使用的是ES 2.3.3)

$('.alphabetized').click(function(event) {
    var textareaInput=$('.textareaInput').val();
    var strToArr=textareaInput.split(',');
    var arrUniqueVal=arrUnique(strToArr);
     $('.textareaInput').val(arrUniqueVal.sort().join(','));
    console.log(arrUniqueVal);
    //alert("ok");
});

...

在大多数搜索中,它提到它是因为番石榴罐子冲突。

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

所以我在运行weblogic时添加了-verbose:class作为Java选项,以查看是否加载了旧版本的guava

但令我惊讶的是,没有发现任何番石榴罐装满了。但我怀疑weblogic.server.merged.jar是否已预先包装谷歌库。

所以我的问题是 有没有什么办法可以告诉容器使用应用程序中的jar文件而不是weblogic?

1 个答案:

答案 0 :(得分:0)

我可以通过向我的EAR添加带有prefer-application-packages的weblogic-application.xml来解决此问题。

<?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>