Using javaagent with JIRA
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
This problem is related to a third party plugin, and therefore not supported by Atlassian. See Atlassian Supported Plugins for more information.
Problem
JIRA uses the Felix OSGi container. By default, OSGi containers follow a specific model for bootstrap class delegation. Classes that are not specified in the container's CLASSPATH are not delegated to the bootstrap classloader; therefore you must configure the OSGi containers for the App Server Agent classes.
The following may appears in the log:
1
2
2015-11-18 19:06:41,463 ThreadPoolAsyncTaskExecutor::Thread 86 ERROR [plugin.osgi.factory.OsgiPlugin] Unable to start the plugin container for plugin 'com.arsenalesystems.dataplane'
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataplaneInitialization' defined in URL [bundle://171.0:0/META-INF/spring/atlassian-plugins-components.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type
1
2
2016-02-20 09:58:22,284 FelixStartLevel ERROR [osgi.container.felix.FelixOsgiContainerManager] Error starting file:/opt/atlassian/tools/atlassian-jira-6.4.7-standalone/atlassian-jira/WEB-INF/osgi-framework-bundles/spring-osgi-extender-1.2.1.jar
java.lang.NoClassDefFoundError: com/singularity/ee/agent/appagent/entrypoint/bciengine/FastMethodInterceptorDelegatorBoot
1
2
3
2015-03-25 10:24:13,172 http-bio-8081-exec-11 ERROR admin 624x152x7 njspjb 172.17.20.10 /rest/api/1.0/shortcuts/6338/bcf3cd72864bdf15fe7cb78f017fb406/shortcuts.js [atlassian.plugin.servlet.DefaultServletModuleManager] Unable to create filter
com.atlassian.util.concurrent.LazyReference$InitializationException: javax.xml.parsers.FactoryConfigurationError: Provider for class javax.xml.parsers.SAXParserFactory cannot be created
...
1
2
3
2014-11-11 11:21:14,829 ERROR [http-bio-12000-exec-35] [atlassian.plugin.servlet.DefaultServletModuleManager] getServlet Unable to create servlet
-- url: /plugins/servlet/whitelist | userName: user | referer: https://your.confluence.url/admin/console.action
com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NoClassDefFoundError: javax/servlet/Servlet
Diagnosis
Environment
Java options has javaagent:
1 2 3 4 5
-javaagent:/appl/jira/Introscope9.7.0.27/wily/Agent.jar or -javaagent:/local/apps/atlassian/jira_5.2/newrelic/newrelic.jar or -javaagent:/opt/appdynamics/javaagent/javaagent.jar
Cause
The container's CLASSPATH is not delegated to the bootstrap classloader
Solution
Workaround
To prevent issues, any customised -javaagent and-Datlassian.org.osgi.framework.bootdelegation flags should be removed from the startup parameters, typically in JIRA_INSTALL/setenv.sh.
This will however disable the javaagent.
Resolution
To properly integrate a monitoring agent that requires modification of -javaagent and bootdelegation parameters, please work with agent vendor to find proper resolution.
In some cases adding atlassian.org.osgi.framework.bootdelegation option will help
1
2
3
-Datlassian.org.osgi.framework.bootdelegation=META-INF.services,com.yourkit,com.singularity.*,com.jprofiler,com.jprofiler.*,org.apache.xerces,org.apache.xerces.*,org.apache.xalan,org.apache.xalan.*,sun.*,com.sun.jndi.*,com.icl.saxon,com.icl.saxon.*,javax.servlet,javax.servlet.*,com.sun.xml.bind.*,jdk.internal.reflect,jdk.internal.reflect.*
-Datlassian.org.osgi.framework.bootdelegation=com.wily,com.wily.*,sun.*,org.w3c.*
Because setting atlassian.org.osgi.framework.bootdelegation overrides the default value, we recommend using the parameter atlassian.org.osgi.framework.bootdelegation.extra instead. See article Adding classes to OSGi boot class loader (BootDelegation)
Additional links:
ca-application-performance-management
Was this helpful?