Problem installing Jira 4.4.3 in Tomcat 7 under Windows 7

Ariel Kogan November 27, 2011

Hey guys. I'm trying to install Jira 4.4.3 in Tomcat 7 running Windows 7 following this guide. I can't get rid of the following exception. I set the jira.home in jira-application.properties and also as a env variable. Do you have any ideas?

Thanks in advance!

Ariel.

Nov 28, 2011 5:16:34 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.atlassian.jira.startup.LauncherContextListener
java.lang.RuntimeException: Exception thrown while waiting for future computation
	at com.atlassian.jira.startup.StartupStateTemplate.isStartupChecksPassed(StartupStateTemplate.java:62)
	at com.atlassian.jira.startup.JiraStartupChecklist.startupOK(JiraStartupChecklist.java:68)
	at com.atlassian.jira.startup.ChecklistLauncher.runStartupChecks(ChecklistLauncher.java:96)
	at com.atlassian.jira.startup.ChecklistLauncher.start(ChecklistLauncher.java:45)
	at com.atlassian.jira.startup.DefaultJiraLauncher.preDbLaunch(DefaultJiraLauncher.java:72)
	at com.atlassian.jira.startup.DefaultJiraLauncher.access$000(DefaultJiraLauncher.java:24)
	at com.atlassian.jira.startup.DefaultJiraLauncher$1.run(DefaultJiraLauncher.java:60)
	at com.atlassian.jira.util.devspeed.JiraDevSpeedTimer.run(JiraDevSpeedTimer.java:33)
	at com.atlassian.jira.startup.DefaultJiraLauncher.start(DefaultJiraLauncher.java:56)
	at com.atlassian.jira.startup.LauncherContextListener$1.create(LauncherContextListener.java:68)
	at com.atlassian.jira.startup.LauncherContextListener$1.create(LauncherContextListener.java:63)
	at com.atlassian.multitenant.impl.MultiTenantComponentMapImpl.get(MultiTenantComponentMapImpl.java:121)
	at com.atlassian.multitenant.impl.MultiTenantComponentMapImpl.onTenantStart(MultiTenantComponentMapImpl.java:165)
	at com.atlassian.multitenant.impl.DefaultMultiTenantManager$1.consume(DefaultMultiTenantManager.java:134)
	at com.atlassian.multitenant.impl.DefaultMultiTenantManager$1.consume(DefaultMultiTenantManager.java:131)
	at com.atlassian.multitenant.impl.DefaultMultiTenantManager.runForEachListener(DefaultMultiTenantManager.java:256)
	at com.atlassian.multitenant.impl.DefaultMultiTenantManager.startTenant(DefaultMultiTenantManager.java:130)
	at com.atlassian.multitenant.impl.DefaultMultiTenantManager.startAll(DefaultMultiTenantManager.java:203)
	at com.atlassian.jira.startup.LauncherContextListener.contextInitialized(LauncherContextListener.java:96)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4765)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5260)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:866)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:842)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:649)
	at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1581)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException
	at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
	at java.util.concurrent.FutureTask.get(FutureTask.java:111)
	at com.atlassian.jira.startup.StartupStateTemplate.isStartupChecksPassed(StartupStateTemplate.java:58)
	... 32 more
Caused by: java.lang.NullPointerException
	at java.io.File.<init>(File.java:251)
	at com.atlassian.jira.startup.JiraHomeStartupCheck.validateJiraHome(JiraHomeStartupCheck.java:202)
	at com.atlassian.jira.startup.JiraHomeStartupCheck.isOk(JiraHomeStartupCheck.java:99)
	at com.atlassian.jira.startup.StartupStateTemplate$CreateStartupChecksResult.call(StartupStateTemplate.java:122)
	at com.atlassian.jira.startup.StartupStateTemplate$CreateStartupChecksResult.call(StartupStateTemplate.java:115)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at com.atlassian.jira.startup.StartupStateTemplate.isStartupChecksPassed(StartupStateTemplate.java:47)
	... 32 more

Nov 28, 2011 5:16:34 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Nov 28, 2011 5:16:34 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Nov 28, 2011 5:16:34 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@4f8d2879')

1 answer

0 votes
Ariel Kogan November 28, 2011

In JiraHomeStartupCheck.java:202 it's written the following:

File webappServletPath = new File(servletContext.getRealPath("/"));

The thing is that servletContext.getRealPath("/") is returning null and that's apparently because Jira is running for a war and not from the exploded war folder inside the work folder of Tomcat. That's apparently because of the following directive written in Catalina/localhost/jira.xml as stated in the Jira installation guide.

<Context path="/jira" docBase="path/to/atlassian-jira-4.x.war" debug="0" useHttpOnly="true">
 
  <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction"
    factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/>
  <Manager pathname=""/>
 
</Context>

What I did is decompress the atlassian-jira-4.x.war file using WinRar and point the docBase to the folder I decompressed the war to.

It worked but I don't like this solution so much because every time that I'll build Jira again now, I'll have to remember to decompress the war folder, otherwise my changes are going to be lost.

Suggest an answer

Log in or Sign up to answer