java.lang.NoClassDefFoundError: com/atlassian/activeobjects/spi/DatabaseType
at com.zxc.activeobjects.test.TestActiveObjects.<clinit>(TestActiveObjects.java:18)
at com.zxc.jira.app.service.DBManagerImplTest.setUp(DBManagerImplTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at net.java.ao.test.junit.ActiveObjectTransactionMethodRule$1.evaluate(ActiveObjectTransactionMethodRule.java:82)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.junit.runner.JUnitCore.run(JUnitCore.java:157)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: java.lang.ClassNotFoundException: com.atlassian.activeobjects.spi.DatabaseType
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 26 more
Actual class -
package com.zxc.jira.app.service;
import com.zxc.jira.app.ao.Credentials;
import com.atlassian.activeobjects.external.ActiveObjects;
import com.atlassian.activeobjects.test.TestActiveObjects;
import net.java.ao.EntityManager;
import net.java.ao.test.jdbc.DatabaseUpdater;
import net.java.ao.test.junit.ActiveObjectsJUnitRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@RunWith(ActiveObjectsJUnitRunner.class)
public class DBManagerImplTest {
private ActiveObjects ao;
private EntityManager entityManager;
private DBManagerImpl dbManager;
@Before
public void setUp() throws Exception {
assertNotNull(entityManager);
ao = new TestActiveObjects(entityManager);
dbManager = new DBManagerImpl(ao);
}
@After
public void tearDown() throws Exception {
}
@Test
public void getAuthToken() {
Map<String, String> map = new HashMap<>();
map.put("url", "https://www.zxc.com");
map.put("authToken", "f1%Z8Z3YPxQ01NhBMj6&");
assertEquals("https://www.zxc.com", dbManager.getAuthToken());
}
@Test
public void doesAuthTokenExist() {
assertEquals(true, dbManager.doesAuthTokenExist());
}
public static class DBManagerImplTestDatabaseUpdater implements DatabaseUpdater
{
@Override
public void update(EntityManager em) throws Exception
{
em.migrate(Credentials.class);
final Credentials credentials = em.create(Credentials.class);
credentials.setUrl("https://www.zxc.com");
credentials.setAuthToken("f1%Z8Z3YPxQ01NhBMj6&");
credentials.save();
}
}
}
My mistake did not add active-object SPI dependency. As it was not mentioned in the tutorial so I thought it was not needed. For those who got this error use -
<dependency>
<groupId>com.atlassian.activeobjects</groupId>
<artifactId>activeobjects-spi</artifactId>
<version>${ao.version}</version>
<scope>test</scope>
</dependency>
Note: Atlassian team, if you think this question is useless please delete it.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.