Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elasticsearch在Tomcat 7上使用javax/servlet/FilterConfig导致java.lang.LinkageError_Java_Spring_Tomcat_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Java,Spring,Tomcat,elasticsearch" /> elasticsearch,Java,Spring,Tomcat,elasticsearch" />

Elasticsearch在Tomcat 7上使用javax/servlet/FilterConfig导致java.lang.LinkageError

Elasticsearch在Tomcat 7上使用javax/servlet/FilterConfig导致java.lang.LinkageError,java,spring,tomcat,elasticsearch,Java,Spring,Tomcat,elasticsearch,我使用的是Elasticsearch 1.1.1,java客户端和服务器版本是相同的。单元测试运行良好。当我启动tomcat服务器时,它有: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name

我使用的是
Elasticsearch 1.1.1
,java客户端和服务器版本是相同的。单元测试运行良好。当我启动tomcat服务器时,它有:

java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/FilterConfig"
在那次错误之前,有很多以下情况:

2014-05-02 15:07:03,954 DEBUG o.e.plugins [localhost-startStop-1] [Corsair] [D:\eclipse-indigo\plugins\org.python.pydev.jython_2.7.0.2012080220\_site] directory does not exist.
很多都是这样的,而且有不同的文件夹

如果我删除使用
elasticsearch
的代码并将依赖项保留在pom.xml中,服务器将正常启动
WEB-INF/lib
和我的应用程序的类路径没有
servlet api.jar
,它只在
TOMCAT_HOME/lib

第一部分设置es客户端如下所示:

if (this.client == null) {

    this.client = new TransportClient(ImmutableSettings.settingsBuilder().
            put("cluster.name", this.cluster).build());

    final String[] addresses = this.hosts.split(",");

    for (final String address : addresses) {

        final String trimmed = address.trim();
        final String[] tuple = trimmed.split(":");
        this.client.addTransportAddress(
                new InetSocketTransportAddress(tuple[0].trim(), Integer.valueOf(tuple[1].trim())));

    }

}
相同的代码用于单元测试,并且通过了所有测试

任何指针都是非常感谢的

这似乎是相关的,但尚未提供适当的解决方案

仅供参考,我也在使用Spring和Spring MVC 4.2.5.RELEASE,Tomcat版本7.0.40

更新:


多亏了这个链接,才发现它是一个eclipse插件,它加载了另一个版本的ServletAPI,导致了我所得到的LinkageError

多亏了这个链接,才发现它是一个eclipse插件,它加载了另一个版本的servlet api,导致了我得到的LinkageError。删除该插件后,现在一切都好了

多亏了这个链接,原来是一个eclipse插件加载了另一个版本的servlet api,导致了我得到的LinkageError。删除插件后,一切都好了

您是只删除了elsaticsearch jar,还是在没有依赖项的情况下重建war?看起来您有一个不同版本的
servlet api
,它是以某种方式拉出来的。我只删除了使用elasticsearch的代码,将依赖项保留在我的类路径中,服务器启动正常。我很确定我的类路径中只有一个servlet-api.jar,它来自tomcat,但LinkageError确实表明了其他情况。最奇怪的是使用相同的依赖项但没有Elasticsearch相关代码会启动服务器。您是仅删除elsaticsearch jar还是在没有依赖项的情况下重建war?看起来您有一个不同版本的
servlet api
,它是以某种方式拉出来的。我只删除了使用elasticsearch的代码,将依赖项保留在我的类路径中,服务器启动正常。我很确定我的类路径中只有一个servlet-api.jar,它来自tomcat,但LinkageError确实表明了其他情况。最奇怪的部分是使用相同的依赖项,但没有Elasticsearch relevent代码使服务器启动。