【问题标题】:Elasticsearch causing java.lang.LinkageError with javax/servlet/FilterConfig on Tomcat 7Elasticsearch 在 Tomcat 7 上使用 javax/servlet/FilterConfig 导致 java.lang.LinkageError
【发布时间】:2015-09-09 20:49:55
【问题描述】:

我用的是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())));

    }

}

相同的代码用于单元测试,它通过了所有测试。

非常感谢任何指针。

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

Linkage error when using Elasticsearch client in Spring WebApp

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

更新:

感谢此链接http://lexxweb.co.uk/blog/?p=66,事实证明它是加载另一个版本 servlet-api 的 eclipse 插件之一,导致我得到了 LinkageError。

【问题讨论】:

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

标签: java spring tomcat elasticsearch


【解决方案1】:

感谢此链接http://lexxweb.co.uk/blog/?p=66,事实证明它是加载另一个版本 servlet-api 的 eclipse 插件之一,导致我得到了 LinkageError。删除插件后一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-31
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多