2013-07-30 121 views
0

我们在运行ejb应用程序的地方安装了glassfish 2.1应用服务器。现在,在新服务器中安装了glassfish 3.1,当我尝试部署其中一个EJB应用程序时,出现以下异常。 ...无法在glassfish 3.1服务器上部署EJB ear文件服务器

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文件夹中,或者这些文件本身自带。因为在我们的另一台测试服务器中,glassfish/lib文件夹中有很多罐子,但不是新安装的那个。

回答

相关问题