我们有运行 ejb 应用程序的 glassfish 2.1 应用程序服务器。现在在一个新服务器中,我们安装了 glassfish 3.1,当我尝试部署其中一个 EJB 应用程序时,出现以下异常.....
Cannot resolve reference Local ejb-ref name=com.alw.mdb.ExtFileUploadedMessageHandlerBean/fileUploaderBean,Local 3.x interface =com.alw.sbi.extuploader.utils.ExtFileManagerLocal,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session because there are 2 ejbs in the application with interface com.alw.sbi.extuploader.utils.ExtFileManagerLocal.
Some of the possible causes:
1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly.
2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib.
The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.
java.lang.IllegalArgumentException: Cannot resolve reference Local ejb-ref name=com.alw.mdb.ExtFileUploadedMessageHandlerBean/fileUploaderBean,Local 3.x interface =com.alw.sbi.extuploader.utils.ExtFileManagerLocal,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session because there are 2 ejbs in the application with interface com.alw.sbi.extuploader.utils.ExtFileManagerLocal.
Some of the possible causes:
1. The EJB bean class was packaged in an ear lib library (or through any other library mechanism which makes the library visible to all component modules), this makes all the component modules include this bean class indirectly.
2. The EJB bean class was packaged in a component module which references the EJB, either directly or indirectly through Manifest, WEB-INF/lib.
The EJB bean class should only be packaged in the declaring ejb module and not the referencing modules. The referencing modules should only include EJB interfaces.
at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:568)
at com.sun.enterprise.deployment.EjbDescriptor.visit(EjbDescriptor.java:2589)
at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:734)
at com.sun.enterprise.deployment.Application.visit(Application.java:1768)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:799)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openWith(ApplicationArchivist.java:277)
at com.sun.enterprise.deployment.archivist.ApplicationFactory.openWith(ApplicationFactory.java:240)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:170)
at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:93)
at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:826)
谁能告诉我问题出在哪里?
还有一件事,当我们安装一个应用服务器时,我们应该手动将所需jar
的文件放在服务器的lib
文件夹中,还是这些文件自己来。因为在我们的另一台测试服务器中,文件夹中有很多 jar,glassfish/lib
但新安装的没有。