我按照How-to-install-OpenGrok中的说明在服务器上创建了2个opengrok项目。
每个项目都有自己的名称:project1和project 2。
创建索引后,部署我的项目并重新启动我的tomcat。只有我在浏览器上查看的第一个项目才有效。另一个项目将提示错误:
HTTP状态500 - org.apache.jasper.JasperException: javax.servlet.ServletException:java.lang.NoClassDefFoundError:可以 没有初始化类org.opensolaris.opengrok.analysis.AnalyzerGuru
输入例外报告
消息org.apache.jasper.JasperException: javax.servlet.ServletException:java.lang.NoClassDefFoundError:可以 没有初始化类org.opensolaris.opengrok.analysis.AnalyzerGuru
description服务器遇到阻止它的内部错误 完成此请求。
例外
org.apache.jasper.JasperException:org.apache.jasper.JasperException: javax.servlet.ServletException:java.lang.NoClassDefFoundError:可以 没有初始化类org.opensolaris.opengrok.analysis.AnalyzerGuru org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:461) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:401) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:345) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.opensolaris.opengrok.web.StatisticsFilter.doFilter(StatisticsFilter.java:55) org.opensolaris.opengrok.web.AuthorizationFilter.doFilter(AuthorizationFilter.java:66)
例如:如果我首先查看项目1,项目2将提示错误。使Project 2工作的唯一方法是重新启动tomcat并首先查看项目2.
我正在使用的OpenGrok版本是V1.0。 Tomcat版本8。
我用来创建索引的命令如下:
OPENGROK_VERBOSE=true OPENGROK_WEBAPP_CONTEXT=${webapp name} OPENGROK_INSTANCE_BASE=${path_to_store_index_files} ./OpenGrok index ${directory_of_source_code}
答案 0 :(得分:0)
如果jdk是oracle one 1.8,那么这看起来像一个bug - 随意打开一个 https://github.com/OpenGrok/OpenGrok/issues
答案 1 :(得分:0)
我在Ubuntu 16.04上的Tomcat8上第二个OpenGrok(1.1 rc11)实例遇到了同样的问题。
看起来内存不足的问题。 我尝试了以下步骤,问题就消失了。
在文件/ etc / default / tomcat8中为Tomcat8设置更大的堆大小。在这里它设置为8克。 (我的机器上总共有32GB RAM)
JAVA_OPTS =“ - Djava.awt.headless = true -Xmx8g -XX:+ UseConcMarkSweepGC”
重启tomcat8服务
sudo service tomcat8 restart
希望以上帮助。