You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by imranrazakhan <im...@gmail.com> on 2018/07/18 18:08:46 UTC
can't cast to implemented interface in Test with KarafTestSupport
I am doing integration test but getting error in which i can't cast to
implemented interface
IPOJO Component:
@Component(immediate = true)
@Provides
public class MyComponent implements MyService
{
@Override
public boolean islock()
{
return true;
}
}
Following is test class extending KarafTestSupport
@Test
public void serviceCreationIsWorking() throws Exception
{
assertBundleInstalled("com.my.osgi.mycomponent");
MyService serviceObject = getOsgiService(MyService.class, 30000l);
System.out.println("getOsgiService=" + serviceObject);
System.out.println("getOsgiService method=" +
serviceObject.islock());
assertConditions(5000, "No deadlock detected!", () ->
serviceObject.islock() == true);
}
But on following line it throws error
java.lang.ClassCastException: com.my.osgi.MyComponent cannot be cast to
com.my.osgi.MyService
MyService serviceObject = getOsgiService(MyService.class, 30000l);
I googled and i found that
/This can happen if two different classloaders load a class named
<classname>.
These two classes are then treated as entirely different classes, even if
they have the same package and name (and even
implementation/fields/methods).
A common cause for this is if you use some kind of plugin system and both
your base classes and the plugin classes provide the same class./
Any suggestion to resolve class loader issue??
--
Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html