我正在尝试在本地VM上设置DSpace 5.4,以准备在另一台计算机上升级到DSpace 5.5。
设置过程正常,但我无法使solr webapp工作。我部署了它(在OpenSuse Leaf 42.1上使用Tomocat 8.0.33和OpenJDK 1.8.0_60),当从VM和主机调用时它返回以下错误:
java.net.UnknownHostException: linux-ai1n: unknown error
java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:928)
java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1323)
java.net.InetAddress.getLocalHost(InetAddress.java:1500)
org.dspace.solr.filters.LocalHostRestrictionFilter.doFilter(LocalHostRestrictionFilter.java:38)
因此,在使用发现相关功能时,会返回此错误:
Expected mime type application/octet-stream but got text/html.
答案我发现只建议更改solr URL,所以我尝试将config / modules / discovery.cfg中的solr URL从http://localhost:8080/solr/search更改为http://127.0.0.1:8008/solr/search,但这并没有解决问题。
任何暗示接下来要检查的内容都会非常有帮助。这可能是虚拟机上没有足够内存的问题吗?
答案 0 :(得分:0)
我要做的第一件事是检查是否实际部署了SOLR。在tomcat中是否有用于solr部署的上下文文件?在[tomcat-folder] / conf / Catalina / localhost下查看。您应该为xmlui / jsp部署提供.xml文件,为solr部署提供一个.xml文件。
如果正确部署了solr,请检查您是否可以通过浏览器自行访问它。本地主机:端口/ solr的/.
答案 1 :(得分:0)
与DSpace一起安装的Solr Web应用程序在其默认配置中使用过滤器 org.dspace.solr.filters.LocalHostRestrictionFilter 来拒绝不是来自localhost的安全性请求。过滤器在Solr的web.xml中定义,该文件位于[dspace]/webapps/solr/WEB-INF/web.xml
您可以通过从web.xml中删除以下行来完全删除此过滤器:
<!-- Any path (name) registered in solrconfig.xml will be sent to that filter -->
<filter>
<filter-name>LocalHostRestrictionFilter</filter-name>
<filter-class>org.dspace.solr.filters.LocalHostRestrictionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LocalHostRestrictionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
或者,将以下内容添加到web.xml以配置过滤器以允许所有请求,包括那些不是来自localhost的请求。
<!-- Limit access to solr webapp.
'true': allow requests from localhost only.
'false': allow requests from all remotes. -->
<context-param>
<param-name>LocalHostRestrictionFilter.localhost</param-name>
<param-value>false</param-value>
</context-param>
如果您执行这两项中的任何一项,我强烈建议您通过其他方式限制对Solr的访问。就个人而言,我已将以下内容添加到${catalina.base}/conf/Catalina/localhost/solr.xml
的solr上下文文件中:
<Valve
className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.0\.0\.1|::1|0:0:0:0:0:0:0:1|192\.168\.1\.\d+"
/>
允许从localhost和本地子网进行访问。有关详细信息,请参阅https://tomcat.apache.org/tomcat-7.0-doc/config/valve.html上标题为访问控制的部分。