我在JIRA 7上使用了JIRA Mercurial插件(https://bitbucket.org/servicerocket-labs/jira-mercurial-plugin/overview) . 它在JIRA 6.4.7上工作正常(通过atlas-run-standalone --product JIRA --version 6.4.7) . 长话短说 - 我've only just upgraded my private JIRA server to JIRA 7, and this is the only thing that doesn'工作......

在JIRA 7.1.9上,Mercurial Repositories配置页面抛出404错误,我在catalina.out中获得了大量的回溯(复制如下) .

我无法让它在atlas-debug或atlas-run中运行 . 我能够让插件运行的唯一方法是运行JIRA独立运行 .

我从atlas-debug和atlas-run得到的错误是:

[ERROR] Failed to execute goal com.atlassian.maven.plugins:maven-amps-dispatcher-plugin:6.2.4:debug (default-cli) on project mercurial-jira-plugin-project: Couldn't detect an AMPS product to dispatch to > [Help 1]

任何人都能为我提供一些帮助吗?

我怀疑这是一个依赖问题 - servlet API升级似乎是一个可能的候选人(https://developer.atlassian.com/jiradev/latest-updates/preparing-for-jira-7-0/jira-7-0-platform-changes#JIRA7.0-Platformchanges-servletapi) . 不幸的是,我的Java知识可以追溯到大约十年,而Atlassian文档中的有限文档("just add a dependency in the project pom file")正在我脑海中浮现......

谢谢 .

Backtrace如下:

2016-07-23 13:13:59,844 http-nio-8081-exec-5 WARN philpem 793x2212x1 n4e75l 10.0.0.32,10.0.0.1 /secure/ViewMercurialRepositories.jspa [n.c.j.p.ext.mercurial.MultipleMercurialRepositoryManagerImpl] No Mercurial repositories configured yet
2016-07-23 13:13:59,845 http-nio-8081-exec-5 ERROR philpem 793x2212x1 n4e75l 10.0.0.32,10.0.0.1 /secure/ViewMercurialRepositories.jspa [c.a.j.config.webwork.JiraActionFactory] Error autowiring Action 'net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction'.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1101)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:342)
        ... 2 filtered
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.atlassian.plugin.osgi.spring.DefaultSpringContainerAccessor.createBean(DefaultSpringContainerAccessor.java:97)
        at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.getActionImpl(JiraActionFactory.java:389)
        at webwork.action.factory.PrefixActionFactoryProxy.getActionImpl(PrefixActionFactoryProxy.java:99)
        at webwork.action.factory.JspActionFactoryProxy.getActionImpl(JspActionFactoryProxy.java:59)
        at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
        at com.atlassian.jira.config.webwork.LookupAliasActionFactoryProxy.getActionImpl(LookupAliasActionFactoryProxy.java:61)
        at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
        at webwork.action.factory.ContextActionFactoryProxy.getActionImpl(ContextActionFactoryProxy.java:36)
        at webwork.action.factory.PrepareActionFactoryProxy.getActionImpl(PrepareActionFactoryProxy.java:37)
        at com.atlassian.jira.config.webwork.JiraActionFactory$SafeParameterSettingActionFactoryProxy.getActionImpl(JiraActionFactory.java:147)
        at webwork.action.factory.ChainingActionFactoryProxy.getActionImpl(ChainingActionFactoryProxy.java:53)
        at com.atlassian.jira.config.webwork.JiraActionFactory.getActionImpl(JiraActionFactory.java:301)
        ... 2 filtered
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        ... 50 filtered
        at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:59)
        ... 62 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
        ... 89 filtered
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1094)
        ... 229 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexService.getMultipleMercurialRepositoryManager(RevisionIndexService.java:190)
        at net.customware.jira.plugins.ext.mercurial.action.MercurialActionSupport.<init>(MercurialActionSupport.java:24)
        at net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction.<init>(ViewMercurialRepositoriesAction.java:20)
        ... 3 filtered
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
        ... 231 more
2016-07-23 13:13:59,849 http-nio-8081-exec-5 ERROR philpem 793x2212x1 n4e75l 10.0.0.32,10.0.0.1 /secure/ViewMercurialRepositories.jspa [c.a.j.web.dispatcher.JiraWebworkActionDispatcher] Exception thrown from action 'ViewMercurialRepositories', returning 404
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1101)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:342)
        ... 2 filtered
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.atlassian.plugin.osgi.spring.DefaultSpringContainerAccessor.createBean(DefaultSpringContainerAccessor.java:97)
        at com.atlassian.jira.config.webwork.JiraActionFactory$JiraPluginActionFactory.getActionImpl(JiraActionFactory.java:389)
        at webwork.action.factory.PrefixActionFactoryProxy.getActionImpl(PrefixActionFactoryProxy.java:99)
        at webwork.action.factory.JspActionFactoryProxy.getActionImpl(JspActionFactoryProxy.java:59)
        at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
        at com.atlassian.jira.config.webwork.LookupAliasActionFactoryProxy.getActionImpl(LookupAliasActionFactoryProxy.java:61)
        at webwork.action.factory.CommandActionFactoryProxy.getActionImpl(CommandActionFactoryProxy.java:60)
        at webwork.action.factory.ContextActionFactoryProxy.getActionImpl(ContextActionFactoryProxy.java:36)
        at webwork.action.factory.PrepareActionFactoryProxy.getActionImpl(PrepareActionFactoryProxy.java:37)
        at com.atlassian.jira.config.webwork.JiraActionFactory$SafeParameterSettingActionFactoryProxy.getActionImpl(JiraActionFactory.java:147)
        at webwork.action.factory.ChainingActionFactoryProxy.getActionImpl(ChainingActionFactoryProxy.java:53)
        at com.atlassian.jira.config.webwork.JiraActionFactory.getActionImpl(JiraActionFactory.java:301)
        ... 2 filtered
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        ... 50 filtered
        at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:59)
        ... 62 filtered
        at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:70)
        ... 89 filtered
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1094)
        ... 229 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexer
        at net.customware.jira.plugins.ext.mercurial.revisions.RevisionIndexService.getMultipleMercurialRepositoryManager(RevisionIndexService.java:190)
        at net.customware.jira.plugins.ext.mercurial.action.MercurialActionSupport.<init>(MercurialActionSupport.java:24)
        at net.customware.jira.plugins.ext.mercurial.action.ViewMercurialRepositoriesAction.<init>(ViewMercurialRepositoriesAction.java:20)
        ... 3 filtered
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
        ... 231 more