用户登录后无法在DSpace上搜索(升级DSpace 6.0)
Users can't search on DSpace after log in (Upgrade DSpace 6.0)
我们已经从 DSpace 4.1 迁移到 DSpace 6.0,迁移后,我们的用户(管理员除外)无法搜索、查看项目、collections、社区。
没有登录,一切都可用,但它们在登录后消失。
之前:
之后:
D空间日志:
2017-07-10 07:56:18,782 ERROR org.dspace.browse.ItemCountDAOSolr @ caught exception:
org.dspace.discovery.SearchServiceException: Error executing query
at org.dspace.discovery.SolrServiceImpl.search(SolrServiceImpl.java:1711)
at org.dspace.browse.ItemCountDAOSolr.loadCount(ItemCountDAOSolr.java:138)
at org.dspace.browse.ItemCountDAOSolr.getCount(ItemCountDAOSolr.java:81)
at org.dspace.browse.ItemCounter.getCount(ItemCounter.java:85)
at org.dspace.app.xmlui.aspect.artifactbrowser.CommunityBrowser.getValidity(CommunityBrowser.java:169)
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
at com.sun.proxy.$Proxy153.getValidity(Unknown Source)
Catalina-daemon.输出日志:
14-Jun-2017 14:20:05.231 INFO [http-nio-8080-exec-7] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
at org.apache.coyote.http11.InternalNioInputBuffer.fill(InternalNioInputBuffer.java:111)
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:268)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1045)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
规格:
- PostgreSQL:9.4.11
- D空间:6.0
- Ubuntu : 14.04
- Solr:4.10.4
原来是header。我们有太多社区,collections 和 DSpace 将它们全部发送到 http header 中的 solr(不知道为什么)。 header 太大,http 请求失败。我们在 tomcat 中增加了 maxhttpRequestHeader,现在一切正常。
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" proxyPort="443"
maxHttpHeaderSize="65536"/>
我们已经从 DSpace 4.1 迁移到 DSpace 6.0,迁移后,我们的用户(管理员除外)无法搜索、查看项目、collections、社区。 没有登录,一切都可用,但它们在登录后消失。
之前:
之后:
D空间日志:
2017-07-10 07:56:18,782 ERROR org.dspace.browse.ItemCountDAOSolr @ caught exception:
org.dspace.discovery.SearchServiceException: Error executing query
at org.dspace.discovery.SolrServiceImpl.search(SolrServiceImpl.java:1711)
at org.dspace.browse.ItemCountDAOSolr.loadCount(ItemCountDAOSolr.java:138)
at org.dspace.browse.ItemCountDAOSolr.getCount(ItemCountDAOSolr.java:81)
at org.dspace.browse.ItemCounter.getCount(ItemCounter.java:85)
at org.dspace.app.xmlui.aspect.artifactbrowser.CommunityBrowser.getValidity(CommunityBrowser.java:169)
at sun.reflect.GeneratedMethodAccessor89.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.cocoon.core.container.spring.avalon.PoolableProxyHandler.invoke(PoolableProxyHandler.java:71)
at com.sun.proxy.$Proxy153.getValidity(Unknown Source)
Catalina-daemon.输出日志:
14-Jun-2017 14:20:05.231 INFO [http-nio-8080-exec-7] org.apache.coyote.http11.AbstractHttp11Processor.process Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Request header is too large
at org.apache.coyote.http11.InternalNioInputBuffer.fill(InternalNioInputBuffer.java:111)
at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:268)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1045)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1533)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1489)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
规格:
- PostgreSQL:9.4.11
- D空间:6.0
- Ubuntu : 14.04
- Solr:4.10.4
原来是header。我们有太多社区,collections 和 DSpace 将它们全部发送到 http header 中的 solr(不知道为什么)。 header 太大,http 请求失败。我们在 tomcat 中增加了 maxhttpRequestHeader,现在一切正常。
<Connector protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" proxyPort="443"
maxHttpHeaderSize="65536"/>