当前位置: 首页 > 面试题库 >

为什么我不能在JBoss上的Solr中实例化DataImportHandler?

东方谦
2023-03-14
问题内容

我正在尝试在JBoss 5.1上设置Solr 3.5.0。一切正常。我将war复制到deploy
dir中,将dist和contrib目录中的所有依赖项都复制到lib(或更早的deploy)目录中。

我可以启动服务器,一切正常,但是每当我想激活DataImportHandler来索引数据库中的数据时,都会出现错误。

基本上,我要做的是复制是从example / example-DIH / solr /
db复制一个核心(或者整个示例,都没关系),我在solr.xml中注册了核心,并且在启动时出现错误:

15:17:10,707 SEVERE [RequestHandlers] org.apache.solr.common.SolrException: Error Instantiating Request Handler, org.apache.solr.handler.dataimport.DataImportHandler is not a org.apache.solr.request.SolrRequestHandler
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:427)
at org.apache.solr.core.SolrCore.createRequestHandler(SolrCore.java:461)
at org.apache.solr.core.RequestHandlers.initHandlersFromConfig(RequestHandlers.java:157)

我很确定我的请求处理程序定义正确,但是请确保:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
  <str name="config">dataimport.xml</str>
</lst>

据我所知,此错误可能是由DataImportHandler和SolrRequestHandler可能持有不同的类加载器引起的。

在示例中,每当我从start.jar应用程序启动Solr时(我认为它会启动Jetty服务器),它都可以正常工作。

我的问题是:这是否真的是由于类加载器问题或其他原因引起的?而且,更重要的是:我该如何解决?


问题答案:

这是一个类加载器问题,根据Lucene Developer Mailing
List上的
这篇文章,您需要执行以下操作:

确保dataimport罐不在类路径中,并且不是由其他类加载器加载,而是从solrconfig.xml中指定的路径加载。这将确保由相同的类加载器加载数据导入类。

请参阅主题以获取更多详细信息。



 类似资料:
  • 问题内容: 我明白: 由于抽象类本身并不是什么,例如车辆,我们想要创建一个具体实现的对象,例如Car,Bike等。 对象链期间将调用抽象类的构造函数。 我们永远不能直接创建抽象类的对象,即使它包含构造函数并且所有方法都已实现。 但是从编译器的角度来看,Java为什么要强制执行这些规则? 问题答案: 这不是技术限制,而是(如您所指出的)逻辑上的限制。Java(和许多其他语言)执行各种规则不是因为它们

  • 问题内容: 我正在使用泛型编写某些东西,令我惊讶的是,我发现这行不通: 那我不能实例化泛型吗?没有任何方法可以做到这一点吗? 问题答案: 是的,这真是令人讨厌。 我使用的解决方法是强制客户端在构造新类时传递类-即 然后您可以使用。

  • 我正在尝试用我用给定的主机名设置的用户名和密码进行连接。我无法连接。我已经检查了安全组在端口的配置是否正确,允许从“我的IP”传入,它在那里填充了我的IP。 我还会做错什么? 当我尝试在终端中使用以下命令进入DB时: 我得到:上的MySQL服务器

  • 问题内容: 我似乎在使用样式语法实例化嵌套类类型的空数组时遇到问题: 这是我误会的东西吗(早在我喝咖啡之前,但我已经查看了发行说明,并且我认为您应该能够引用这样的嵌套类)或Beta 7中的错误? 这可以作为一种解决方法: 问题答案: 这肯定看起来像是编译器中的错误,尤其是 允许 您实例化嵌套类的空数组就好了。它根本不适用于初始化程序语法。 我会提出一个错误。同时,对于遇到问题的任何人,都可以通过使

  • 我的问题。我试图运行matplotlib在Python 3.10在我的MacOS,但我得到以下错误: 然而,当我试着跑步的时候 然后我回来 另外,针对 终端说 此外,如果我在Sublime Text 3上使用Python 2.7.16编译代码,我可以使用matplotlib。 我的问题。如何让matplotlib在Python 3.10上运行? 因为我对Python还是新手(或者编程,就此而言),

  • 问题内容: 如果html文件是本地文件(在我的C驱动器上),则可以使用,但是如果html文件在服务器上并且图像文件是本地文件,则无法使用。这是为什么? 任何可能的解决方法? 问题答案: 如果客户端可以请求本地文件系统文件,然后使用JavaScript找出其中的内容,则将是一个安全漏洞。 解决此问题的唯一方法是在浏览器中构建扩展。Firefox扩展和IE扩展可以访问本地资源。Chrome的限制更为严