Localhost:2990/jira returns 404, but no error is logged when the request is processed

Preface: Apology for the lack of good links here. Apparently as a new user I’m limited to 2 links per post.

Potential Duplicates

  • Potentially related to topic 37011, which went stale ~5 years ago.
  • Probably not a duplicate of topic 56202 - my JAVA_HOME environment variable is set correctly.
  • Likely related to topic 70537, which has gone without response for 2 years.

Context

As with the above similar issues, I’m following the Generate and Examine Skeleton Tests tutorial.

First, let’s set up how I got here. I am on a generation 2 VM hosted in Hyper-V, running Windows 11 Pro version 24H2 build 26100.3775. I installed the Atlassian Plugin SDK for Windows version 8.2.7, from here, then used chocolatey 2.4.3 to install OpenJDK 22.0.2 (choco install openjdk). This command and all others were run in an administrator command prompt.

I was sure to set JAVA_HOME to C:\Program Files\OpenJDK\jdk-22.0.2 in both my account and system environment variables, which I verified by running echo %JAVA_HOME% in the shells where I’m using the atlas-* commands.

In the directory C:\src, I ran the command atlas-create-jira-plugin and gave the exact values specified in the tutorial. This took some time to run, but ran successfully. I then did cd testTutorial, immediately followed by atlas-run - I did not make any changes to the files generated by atlas-create-jira-plugin.

I ran into an error here: Execution null of goal com.atlassian.maven.plugins:jira-maven-plugin:8.1.2:run failed: java.io.FileNotFoundException: https://marketplace.atlassian.com/rest/1.0/plugins/atlassian-plugin-sdk-windows. Searching the error led me to topic 27070, and ultimately ecosystem work item AMPS-1487. I called atlas-run -Dmaven.javadoc.skip=true verify, which proved to be an effective workaround.

Problem

I’ve ended up blocked as atlas-run reports that “[INFO] jira started successfully in 451s at (localhost 2990 slash jira, URL I had to redact because I’ve used up my 2 links per post)”, but a GET request to “(that same URL)” gets a HTTP 404 response. When this request is made, nothing is logged to the console.

It may be of note that just before finishing the deployment of the WAR, 2 exceptions were logged (at the INFO log level). The first was a java.lang.ExceptionInInitializerError whose stack trace was over 1500 lines long. I can’t paste the whole thing here due to character limits, but it begins

[INFO] [talledLocalContainer] 2025-05-08 16:12:57,966 localhost-startStop-1 ERROR      [c.a.jira.startup.ComponentContainerLauncher] An Error occurred during ComponentContainerLauncher servlet context initialisation - null.
[INFO] [talledLocalContainer] java.lang.ExceptionInInitializerError
[INFO] [talledLocalContainer]   at net.sf.cglib.core.KeyFactory$Generator.generateClass(KeyFactory.java:167)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
[INFO] [talledLocalContainer]   at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
[INFO] [talledLocalContainer]   at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
[INFO] [talledLocalContainer]   at com.atlassian.jira.config.component.AbstractDelegatedMethodInterceptor.createProxy(AbstractDelegatedMethodInterceptor.java:53)
[INFO] [talledLocalContainer]   at com.atlassian.jira.component.pico.provider.DateTimeFormatterProvider.provide(DateTimeFormatterProvider.java:13)
[INFO] [talledLocalContainer]   at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
...

The second, a much shorter java.lang.IllegalStateException:

[INFO] [talledLocalContainer] May 08, 2025 4:13:07 PM org.apache.catalina.startup.HostConfig deployWAR
[INFO] [talledLocalContainer] SEVERE: Error deploying web application archive [C:\src\testTutorial\target\container\tomcat8x\cargo-jira-home\webapps\jira.war]
[INFO] [talledLocalContainer] java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/jira]]
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:758)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
[INFO] [talledLocalContainer]   at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
[INFO] [talledLocalContainer]   at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
[INFO] [talledLocalContainer]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[INFO] [talledLocalContainer]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[INFO] [talledLocalContainer]   at java.base/java.lang.Thread.run(Thread.java:1570)

As this is my first time working with Java, and I’m not at all familiar with its ecosystem, I can’t make heads or tails of what these errors mean - I’m not even 100% certain that they are related to the 404s. Any insight as to what caused these, or how to resolve them, would be greatly appreciated.