繁体   English   中英

无法在glassfish 3.1服务器中部署EJB耳朵文件

[英]cannot deploy EJB ear file in glassfish 3.1 server

我们有运行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文件夹中,还是由它们自己提供。 因为在我们的另一台测试服务器中, glassfish/lib文件夹中有很多jar,而新安装的jar中没有。

这可能会有所帮助: http : //docs.oracle.com/cd/E18930_01/html/821-2417/beaek.html

还有一种方法可以从命令行进行兼容部署:

asadmin deploy --property compatibility=v2 foo.ear

您可以在https://java.net/jira/browse/GLASSFISH-10496中了解到

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM