在@local - Annotation中使用来自外部Jar的接口的EJB无效

时间:2012-02-10 12:14:53

标签: java-ee glassfish ejb java-ee-6 initial-context

作为应用程序服务器我使用GlassFish来创建我的新Java EE 6应用程序。

我的工作区中有两个项目,分别是。在一个服务器上。

第一个是纯EJB项目,包括一些具有本地和远程可访问性的EJB。 (我在EJB中使用 @remote @local 。接口保持。)

第二个是尝试使用InitialContext-lookup连接第一个模块中的一个EJB的Web项目。由于两个模块都在同一台服务器上,我使用本地接口进行通信。我将检索到的对象(在查找之后)转换为“对象”并且它工作正常。但作为一个简单的对象:没用。

为了获得正确的EJB实例,我在外部jar文件中提取了EJB的接口(本地和远程),并将其添加到两个模块中。结果是我的EJB不再被部署,因为新的构建版本似乎无效。

在EJB中是否存在带有@remote和@local注释的探针,其接口存储在外部jar中?

感谢您的帮助: - )

编辑:

EJB看起来像这样:

import javax.ejb.Local;
import javax.ejb.Remote;
import javax.ejb.Stateless;

import de.myapp.business.user.facade.UserServiceFacadeLocal;
import de.myapp.business.user.facade.UserServiceFacadeRemote;

@Stateless
@Remote(value=UserServiceFacadeRemote.class)
@Local(value=UserServiceFacadeLocal.class)
public class UserServiceFacade implements UserServiceFacadeLocal, UserServiceFacadeRemote
{ ... }

发布时的错误:

  

无法部署myappBusiness
  模块的部署错误:myappBusiness:部署期间发生错误:部署应用程序时出现异常[myappBusiness]:无效的ejb jar
[myappBusiness]:它包含零ejb。
  注意:
  1.有效的ejb jar至少需要一个会话,实体(1.x / 2.x样式)或消息驱动的bean。
  2. EJB3 +实体bean(@Entity)是POJO,请将它们打包为库jar   3.如果jar文件包含使用EJB组件级别注释(@Stateless,@ Stateful,@ MessageDriven,@ Singleton)注释的有效EJB,请检查server.log以查看注释是否已正确处理..请参阅服务器。记录更多详细信息。

server.log说:

  

信息:来自主机127.0.0.1的用户[admin]没有管理访问权限
   WARNUNG:注释处理错误:java.lang.NoClassDefFoundError:de / myapp / business / user / facade / UserServiceFacadeLocal
  SCHWERWIEGEND:部署应用程序时出现异常[bacchusBusiness]   SCHWERWIEGEND:无效的ejb jar [bacchusBusiness]:它包含零ejb。

进口运作良好。没有错误,没有例外。但是如果服务器找不到接口,那么EJB可能会出错。

0 个答案:

没有答案