用户登录后无法在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)

规格:

原来是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"/>