Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

NoClassDefFoundError when executing package via a PostFunction, which was included in plugin?

Daniel Micallef
Contributor
August 17, 2017

I have included a class which uses MongoDB driver in a customfield plugin. The Mongo driver has been added as a dependency and as one of the Import Packages in the plugin pom file as per below.

<!-- https://mvnrepository.com/artifact/com.mongodb/mongo-->
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.2</version>
<scope>provided</scope>
</dependency>
<Import-Package>org.bson.*;resolution:="optional", com.mongodb.*;resolution:="optional", org.springframework.osgi.*;resolution:="optional", org.eclipse.gemini.blueprint.*;resolution:="optional", *</Import-Package>

Everything has compiled and is well, however when I try to use the MongoClient class in a post function script (using script runner) the following error is returned:

java.lang.NoClassDefFoundError: com/mongodb/MongoClient
	at com.rs2.jira.plugin.customfield.jira.customfields.MongoHelper.<init>(MongoHelper.java:18) [?:?]
	at com.rs2.jira.plugin.customfield.jira.customfields.CarrierToDb.getMongoHelper(CarrierToDb.java:588) [?:?]
	at com.rs2.jira.plugin.customfield.jira.customfields.CarrierToDb$getMongoHelper.call(Unknown Source) [?:?]
	at Script262.run(Script262.groovy:23) [?:?]
	at com.onresolve.scriptrunner.runner.ScriptRunnerImpl.runScriptAndGetContext(ScriptRunnerImpl.groovy:158) [?:?]
	at com.onresolve.scriptrunner.runner.ScriptRunner$runScriptAndGetContext$0.callCurrent(Unknown Source) [?:?]
	at com.onresolve.scriptrunner.runner.ScriptRunnerImpl.runStringAsScript(ScriptRunnerImpl.groovy:146) [?:?]
	at com.onresolve.scriptrunner.runner.ScriptRunner$runStringAsScript.call(Unknown Source) [?:?]
	at com.onresolve.scriptrunner.canned.jira.utils.CustomScriptDelegate.doScript(CustomScriptDelegate.groovy:66) [?:?]
	at com.onresolve.scriptrunner.canned.jira.utils.CustomScriptDelegate$doScript.call(Unknown Source) [?:?]
	at com.onresolve.scriptrunner.canned.jira.workflow.postfunctions.CustomScriptFunction.doScript(CustomScriptFunction.groovy:44) [?:?]

 

How is it possible that the class is not found, when it is explicitly provided?

1 answer

0 votes
Daniel Yelamos [Adaptavist]
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
September 13, 2017

Hello!

In order to do this you need to use the @WithPlugin and the plugin that you have inserted the MongoDB driver into.

You have more information about this here.

If I can help you further let me know.

Cheers!

Dyelamos

Suggest an answer

Log in or Sign up to answer
TAGS
atlassian, jira, marketing project management, jira for marketers, agile marketing, campaign planning, marketing workflows, jira templates, atlassian learning, marketing collaboration, project tracking, marketing teams, jira training

Streamline Marketing in Jira 🖼️

Plan, prioritize, and deliver marketing projects seamlessly. See how Jira supports your team's success. Start today!

Start now! 🚦
AUG Leaders

Atlassian Community Events