我正在使用Glassfish 3.1.1并尝试在迁移到EJB3之前使EJB2.x部署正常工作。我做了一个小例子,结构如下:
ejb-jar.xml
描述bean A,包含远程和本地接口。ejb-jar.xml
描述bean B,包含远程和本地接口。web.xml
包含一个servlet和<ejb-local-ref>
标记,指向bean A和B的本地接口这一切都部署并正常运行。但是,当我想将查找代码移出战争并将其移动到lib/helper.jar
下可用的jar时,我会在窄帮助器上获得ClassNotFoundException
。
Caused by: java.lang.ClassNotFoundException: com.abeloos.glassfish.helper.narrow.calculator.EJBNarrow
at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:808)
at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:696)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
如果你来自lib-path,几乎就好像你无法访问bean代码。