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
AUG Leaders

Atlassian Community Events