Я пытаюсь выполнить модульное тестирование простого проекта EJBModule под NetBeans 7.1, но я получаю одно предупреждение и ошибку инициализации.Я использую GlassFish версии 3.1.1.Я надеюсь, что кто-то знаком с этим типом проблемы и может дать мне несколько советов, как ее решить.
В первом проекте у нас есть такой удаленный интерфейс:
@Remote
public interface CredentialEJBRemote {
//Stuff
}
Затем во втором проекте мы реализуем такой интерфейс:
@Stateless
@LocalBean
public class CredentialEJB implements CredentialEJBRemote {
//@Override stuff
}
И, наконец, в модульном тесте я делаю это:
private static EJBContainer ec = EJBContainer.createEJBContainer();
private static Context ctx = ec.getContext();
CredentialEJBRemote instance = (CredentialEJBRemote)ctx.lookup("java:global/classes/CredentialEJB");
//Do stuff with instance
Когда я запускаю модульный тест, я получаюпредупреждение и ошибка.
Предупреждение:
WARNING: multiple versions of ant detected in path for junit
jar:file:/C:/Program%20Files/NetBeans%207.1/java/ant/lib/ant.jar!/org/apache/tools/ant/Project.class
and jar:file:/C:/Program%20Files/glassfish3.1.1/glassfish/modules/ant.jar!/org/apache/tools/ant/Project.class
За этим следует ошибка в контрольном примере:
Testcase: initializationError(trefliq.persistence.CredentialEJBTest): Caused an ERROR
Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer
java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/ejb/embeddable/EJBContainer
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(
at java.lang.ClassLoader.defineClass(ClassLoader.java:791) ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
at java.lang.Class.getDeclaredFields(Class.java:1760)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
Есть идеи, что может быть причиной этого?
Большое спасибо.