将PDF文档索引到Solr-Error 500 java.lang.NoClassDefFoundError:org/eclipse/jetty/server/MultiParts

将PDF文档索引到Solr-Error 500 java.lang.NoClassDefFoundError:org/eclipse/jetty/server/MultiParts,java,solr,jetty,apache-tika,Java,Solr,Jetty,Apache Tika,我正在尝试将PDF文档索引测试到ApacheSolr核心 我发现了以下说明: 我将必要的库添加到我的solrconfig.xml: <lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*\.jar" /> <lib dir="${solr.install.dir:../../..}/dist/" regex="solr

我正在尝试将PDF文档索引测试到ApacheSolr核心

我发现了以下说明:

我将必要的库添加到我的
solrconfig.xml

<lib dir="${solr.install.dir:../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../..}/dist/" regex="solr-cell-\d.*\.jar" />
我希望文档能够被索引,但是我得到了一个
错误500 java.lang.NoClassDefFoundError:org/eclipse/jetty/server/MultiParts

> <html> <head> <meta http-equiv="Content-Type"
> content="text/html;charset=utf-8"/> <title>Error 500
> java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</title> </head> <body><h2>HTTP
> ERROR 500 java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</h2> <table>
> <tr><th>URI:</th><td>/solr/test/update/extract</td></tr>
> <tr><th>STATUS:</th><td>500</td></tr>
> <tr><th>MESSAGE:</th><td>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</td></tr>
> <tr><th>SERVLET:</th><td>default</td></tr> <tr><th>CAUSED
> BY:</th><td>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</td></tr> </table> <h3>Caused
> by:</h3><pre>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts
>         at org.apache.solr.servlet.SolrRequestParsers.cleanupMultipartFiles(SolrRequestParsers.java:624)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:443)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345)
>         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
>         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
>         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>         at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
>         at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
>         at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.server.Server.handle(Server.java:500)
>         at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
>         at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
>         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
>         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
>         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>         at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
>         at java.lang.Thread.run(Unknown Source) </pre>
> 
> </body> </html>
>content=“text/html;charset=utf-8”/>错误500
>java.lang.NoClassDefFoundError:
>org/eclipse/jetty/server/MultiParts HTTP
>错误500 java.lang.NoClassDefFoundError:
>org/eclipse/jetty/server/MultiParts
>URI:/solr/test/update/extract
>现状:500
>消息:java.lang.NoClassDefFoundError:
>org/eclipse/jetty/server/MultiParts
>SERVLET:默认情况下
>收件人:java.lang.NoClassDefFoundError:
>org/eclipse/jetty/server/MultiParts
>收件人:java.lang.NoClassDefFoundError:
>org/eclipse/jetty/server/MultiParts
>位于org.apache.solr.servlet.SolrRequestParsers.cleanupMultipartFiles(SolrRequestParsers.java:624)
>位于org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:443)
>位于org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345)
>位于org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
>位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
>位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
>位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>位于org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
>位于org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
>位于org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
>位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
>位于org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
>位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>位于org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
>位于org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
>位于org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
>位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>位于org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
>位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>位于org.eclipse.jetty.server.server.handle(server.java:500)
>位于org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
>位于org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
>位于org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
>位于org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
>位于org.eclipse.jetty.io.AbstractConnection$ReadCallback.successed(AbstractConnection.java:311)
>位于org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>位于org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
>位于org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
>位于java.lang.Thread.run(未知源)
> 
>  
有人有主意吗


谢谢

这是Solr 8.6.0和Solr 8.6.1的问题。看


将Solr降级到8.5.1应该可以解决这个问题,直到问题在新的Solr版本中得到解决。

jetty服务器jar是否出错?jetty-server-9.4.11.v20180605.jar?听起来您的jetty-jar文件中混合了jetty版本。确保它们都运行相同的版本。如果您使用maven/gradle/ivy/etc,只需将正确添加到构建文件中,以正确对齐版本。@JoakimErdfelt,我在Solr 8.6.0中得到的错误与网站上的错误完全相同。假设它使用嵌入式Jetty服务器,因为我没有单独安装它。您有其他
org.eclipse.Jetty.server.
正在加载的打包类(从stacktrace中可以明显看出)。但是,
org.eclipse.jetty.server.MultiParts
没有加载。只有在类路径的不同版本上有多个jetty server JAR时,才会发生这种情况。看起来问题不是因为不同的jetty server JAR造成的。因为a)主机上没有其他jetty JAR,b)安装的所有jetty JAR都来自solr软件包,并且来自保存版本。
curl 'http://localhost:8983/solr/test/update/extract?literal.id=doc1&commit=true' -F "myfile=@C:\Workspace\solr\solr-8.6.0\docs\pdf\test.pdf"
> <html> <head> <meta http-equiv="Content-Type"
> content="text/html;charset=utf-8"/> <title>Error 500
> java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</title> </head> <body><h2>HTTP
> ERROR 500 java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</h2> <table>
> <tr><th>URI:</th><td>/solr/test/update/extract</td></tr>
> <tr><th>STATUS:</th><td>500</td></tr>
> <tr><th>MESSAGE:</th><td>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</td></tr>
> <tr><th>SERVLET:</th><td>default</td></tr> <tr><th>CAUSED
> BY:</th><td>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts</td></tr> </table> <h3>Caused
> by:</h3><pre>java.lang.NoClassDefFoundError:
> org/eclipse/jetty/server/MultiParts
>         at org.apache.solr.servlet.SolrRequestParsers.cleanupMultipartFiles(SolrRequestParsers.java:624)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:443)
>         at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:345)
>         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1596)
>         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
>         at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:590)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
>         at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
>         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1300)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
>         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485)
>         at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580)
>         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
>         at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1215)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>         at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221)
>         at org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
>         at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
>         at org.eclipse.jetty.server.Server.handle(Server.java:500)
>         at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
>         at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:547)
>         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
>         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
>         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>         at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938)
>         at java.lang.Thread.run(Unknown Source) </pre>
> 
> </body> </html>