I am trying to setup OpenGrok in fresh Linux environment. I have followed the instructions from: https://github.com/oracle/opengrok/wiki/How-to-setup-OpenGrok.
Once I setup OpenGrok and Tomcat, I have copied the source.war from Opengrok to Tomcat/webapps. After copying when I tried to connect http://localhost:8080/source it always give me this 404 not found error:
HTTP Status 404 – Not Found
Type Status Report
Message The requested resource [/source] is not available
Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
Apache Tomcat/9.0.48
I am using the latest OpenGrok version and Tomcat version: Apache Tomcat/9.0.48
Here's the detailed error from the OpenGrok Logs:
11:49:08 SEVERE: Couldn't notify the webapp on http://localhost:8080/source.
jakarta.ws.rs.NotFoundException: HTTP 404 Not Found
at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:916)
at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:723)
at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:643)
at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:665)
at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:659)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:659)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:642)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:417)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
at org.opengrok.indexer.index.IndexerUtil.enableProjects(IndexerUtil.java:79)
at org.opengrok.indexer.index.Indexer.main(Indexer.java:334)
Couldn't notify the webapp on http://localhost:8080/source: HTTP 404 Not Found.
11:49:09 SEVERE: Failed to send configuration to http://localhost:8080/source (is web application server running with opengrok deployed?)
java.io.IOException: InboundJaxrsResponse{context=ClientResponse{method=PUT, uri=http://localhost:8080/source/api/v1/configuration?reindex=true, status=405, reason=Method Not Allowed}}
at org.opengrok.indexer.configuration.RuntimeEnvironment.writeConfiguration(RuntimeEnvironment.java:1427)
at org.opengrok.indexer.index.Indexer.sendToConfigHost(Indexer.java:1149)
at org.opengrok.indexer.index.Indexer.main(Indexer.java:378)
Need help to resolve this 404 tomcat error and setting up opengrok.
Thanks in Advance
On the installation page you cite, under requirements you find:
A servlet container like GlassFish or Tomcat 10.0 or later
(emphasis mine).
source.war
is a Jakarta EE 9 application, it will not work on Tomcat 9.0. Since version 1.6.0 OpenGrok requires a Servlet 5.0 container.