NoClassDefFoundError for 'Automation for JIRA' plugin after JSD installation

Himanshu Nanda October 28, 2020

Installed JIRA Service desk (100 lic) on a server already running JIRA (250 lic). All plugins are at 250 lic as well.

Everything else is working fine, but 'Automation for JIRA' refuses to load and throws a 500 error after this. Tried disable and re-enable on the plugin, didn't work.

Anyone knows the fix please? Pls help.

/secure/AutomationWelcomeAction!iframe.jspa [c.c.j.p.automation.web.AutomationWelcomeAction] Unexpected error loading welcome UI:
java.lang.NoClassDefFoundError: com/atlassian/servicedesk/api/ServiceDeskService
	at com.codebarrel.jira.servicedesk.ServiceDeskServiceResolver.getServiceDeskService(ServiceDeskServiceResolver.java:36)
	at com.codebarrel.jira.servicedesk.NativeServiceDeskClientFactory.getClient(NativeServiceDeskClientFactory.java:63)
	at com.codebarrel.jira.factory.NativeJIRAClientFactory.getClient(NativeJIRAClientFactory.java:89)
	at com.codebarrel.jira.factory.NativeJIRAClientFactory.getClient(NativeJIRAClientFactory.java:32)
	at com.codebarrel.automation.api.welcome.WelcomeContextProviderImpl.addCommonContext(WelcomeContextProviderImpl.java:28)
	at com.codebarrel.jira.plugin.automation.web.AutomationWelcomeAction.getIframeViewData(AutomationWelcomeAction.java:79)

  

/secure/AutomationWelcomeAction!iframe.jspa [o.a.c.c.C.[Catalina].[localhost].[/]] Unhandled exception occurred whilst decorating page
com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$localeString" evaluates to undefined.
	at JIRA.Automation.Welcome.Page.iframe(welcome-page.soy:32)
	at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:369)
	at com.google.template.soy.tofu.internal.BaseTofu.renderMain(BaseTofu.java:322)
	at com.google.template.soy.tofu.internal.BaseTofu.access$100(BaseTofu.java:66)
	at com.google.template.soy.tofu.internal.BaseTofu$RendererImpl.render(BaseTofu.java:476)
	at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:154)
	at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:45)
	at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:39)
	... 5 filtered
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	... 48 filtered
	at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:55)
	... 4 filtered
	at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
	... 7 filtered
	at com.atlassian.jira.plugin.mobile.web.filter.MobileAppRequestFilter.doFilter(MobileAppRequestFilter.java:37)
	... 4 filtered
	at com.atlassian.jira.plugin.mobile.login.MobileLoginSuccessFilter.doFilter(MobileLoginSuccessFilter.java:54)
	... 3 filtered
	at com.atlassian.diagnostics.internal.platform.monitor.http.HttpRequestMonitoringFilter.doFilter(HttpRequestMonitoringFilter.java:55)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 62 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
	... 1 filtered
	at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
	... 39 filtered
	at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
	... 5 filtered
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:213)
	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:136)
	at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:89)
	at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:204)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:135)
	at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:124)
	... 4 filtered
	at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:37)
	... 8 filtered
	at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
	... 4 filtered
	at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
	... 29 filtered
	at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
	... 25 filtered
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: com.google.template.soy.sharedpasses.render.RenderException: In 'print' tag, expression "$localeString" evaluates to undefined.
	at JIRA.Automation.Welcome.Page.iframe(welcome-page.soy:32)
	at com.google.template.soy.sharedpasses.render.RenderVisitor.visitPrintNode(RenderVisitor.java:251)
	at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:87)
	at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:56)
	at com.google.template.soy.basetree.AbstractNodeVisitor.visitChildren(AbstractNodeVisitor.java:59)
	at com.google.template.soy.sharedpasses.render.RenderVisitor.visitBlockHelper(RenderVisitor.java:702)
	at com.google.template.soy.sharedpasses.render.RenderVisitor.visitTemplateNode(RenderVisitor.java:220)
	at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visitTemplateBasicNode(AbstractSoyNodeVisitor.java:160)
	at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:66)
	at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:56)
	at com.google.template.soy.basetree.AbstractNodeVisitor.exec(AbstractNodeVisitor.java:40)
	at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:366)
	... 287 more

 

3 answers

1 accepted

0 votes
Answer accepted
Himanshu Nanda November 5, 2020

(Reposting as answer to close this)

So I figured out the root cause of the issue. My base JIRA version was 8.5.6 - while A4J maintains that their latest app version supports JIRA all the way back till 7.7 - it seems their backwards compatibility may have an issue.

I upgraded my JIRA instance and that fixed the issue. Try it out in case that helps you too

0 votes
Johannes Rudolf November 29, 2021

Ran into this trouble too. Even though the A4J version was compatible (A4J 7.2.8 vs. Jira 8.13.13) it helped to upgrade A4J to the next version (7.3.3). Luckily we use postgres, so the extra steps were not required and it went pretty fast and well.

0 votes
Morgan Wattiez
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
November 5, 2020

We get the same problem (on the same day) after installing a trial version of Jira Service Desk : 

 

2020-10-28 10:15:21,399 http-nio-8080-exec-63 ERROR user 615x6490673x1 1tiss0 94.110.227.235,10.0.5.24,10.0.11.151 /secure/AutomationGlobalAdminAction!iframe.jspa [o.a.c.c.C.[Catalina].[localhost].[/]] Unhandled exception occurred whilst decorating page
com.google.template.soy.tofu.SoyTofuException: In 'print' tag, expression "$localeString" evaluates to undefined.
at JIRA.Automation.Project.Admin.Page.iframe(automation-admin-page.soy:53)
at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:369)
at com.google.template.soy.tofu.internal.BaseTofu.renderMain(BaseTofu.java:322)
at com.google.template.soy.tofu.internal.BaseTofu.access$100(BaseTofu.java:66)
at com.google.template.soy.tofu.internal.BaseTofu$RendererImpl.render(BaseTofu.java:476)
at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:133)
at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:45)
at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:39)
... 5 filtered
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
... 48 filtered
at com.atlassian.servicedesk.internal.web.ExternalCustomerLockoutFilter.doFilter(ExternalCustomerLockoutFilter.java:56)
... 4 filtered
at com.atlassian.greenhopper.jira.filters.ClassicBoardRouter.doFilter(ClassicBoardRouter.java:62)
... 12 filtered
at de.codecentric.PreventAnonymousAccessFilter.doFilterInternal(PreventAnonymousAccessFilter.java:53)
at de.codecentric.PreventAnonymousAccessFilter.doFilter(PreventAnonymousAccessFilter.java:37)
... 3 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 47 filtered
at net.youngaweb.jira.ServletFilter.doFilter(ServletFilter.java:381)
... 3 filtered
at com.atlassian.plugins.slack.analytics.SlackAnalyticsFilter.doFilter(SlackAnalyticsFilter.java:35)
... 14 filtered
at com.atlassian.jira.security.JiraSecurityFilter.lambda$doFilter$0(JiraSecurityFilter.java:66)
... 1 filtered
at com.atlassian.jira.security.JiraSecurityFilter.doFilter(JiraSecurityFilter.java:64)
... 39 filtered
at com.atlassian.jira.servermetrics.CorrelationIdPopulatorFilter.doFilter(CorrelationIdPopulatorFilter.java:30)
... 5 filtered
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.lambda$invokeFilterChain$0(CustomerContextSettingFilter.java:181)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.rteInvoke(ReentrantThreadLocalBasedCodeContext.java:137)
at com.atlassian.servicedesk.internal.api.util.context.ReentrantThreadLocalBasedCodeContext.runOutOfContext(ReentrantThreadLocalBasedCodeContext.java:90)
at com.atlassian.servicedesk.internal.utils.context.CustomerContextServiceImpl.runOutOfCustomerContext(CustomerContextServiceImpl.java:47)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.outOfCustomerContext(CustomerContextSettingFilter.java:174)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilterImpl(CustomerContextSettingFilter.java:130)
at com.atlassian.servicedesk.internal.web.CustomerContextSettingFilter.doFilter(CustomerContextSettingFilter.java:121)
... 4 filtered
at com.atlassian.jwt.internal.servlet.JwtAuthFilter.doFilter(JwtAuthFilter.java:32)
... 8 filtered
at com.atlassian.web.servlet.plugin.request.RedirectInterceptingFilter.doFilter(RedirectInterceptingFilter.java:21)
... 4 filtered
at com.atlassian.web.servlet.plugin.LocationCleanerFilter.doFilter(LocationCleanerFilter.java:36)
... 26 filtered
at com.atlassian.jira.servermetrics.MetricsCollectorFilter.doFilter(MetricsCollectorFilter.java:25)
... 24 filtered
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Himanshu Nanda November 5, 2020

@Morgan Wattiez 

So I figured out the root cause of the issue. My base JIRA version was 8.5.6 - while A4J maintains that their latest app version supports JIRA all the way back till 7.7 - it seems their backwards compatibility may have an issue.

I upgraded my JIRA instance and that fixed the issue. Try it out in case that helps you too

Suggest an answer

Log in or Sign up to answer