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')
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.