Eclipse 单独的JSF和EJB应用程序

Eclipse 单独的JSF和EJB应用程序,eclipse,jsf,jakarta-ee,glassfish,ejb-3.0,Eclipse,Jsf,Jakarta Ee,Glassfish,Ejb 3.0,如何从单独的JSF应用程序使用已部署的EJB应用程序 我试图分离这两个应用程序,并通过远程接口访问EJB。为此,我有两个eclipse项目——一个包含EJB和持久性逻辑,经过独立测试,可以正常工作。然后,我创建了一个引用EJB项目的JSF项目(因此我获得了对远程接口的访问权),但是当尝试注入EJB实例或查找JNDI名称时,这会失败(我尝试了几个变体,但都没有成功)。这就是我的JSF支持bean所包含的内容: @EJB(lookup=“java:global/LocEJB/LocalityEJB!

如何从单独的JSF应用程序使用已部署的EJB应用程序

我试图分离这两个应用程序,并通过远程接口访问EJB。为此,我有两个eclipse项目——一个包含EJB和持久性逻辑,经过独立测试,可以正常工作。然后,我创建了一个引用EJB项目的JSF项目(因此我获得了对远程接口的访问权),但是当尝试注入EJB实例或查找JNDI名称时,这会失败(我尝试了几个变体,但都没有成功)。这就是我的JSF支持bean所包含的内容:

@EJB(lookup=“java:global/LocEJB/LocalityEJB!com.ame.business.LocalityEJBRemote”) 私人场所ejbremote场所

这是关于Glassfish的,我只是引用EJB项目,而不是将其与JSF项目打包在一起。当我执行后一种操作时,在JSF项目上初始化EJB容器问题时会收到错误消息。那么,我如何访问远程EJB,我处理这个问题的方式有意义吗


提前谢谢

JSF应用程序必须了解EJB接口(至少在EJB2.0上是这样)。您正在使用代理模式来隐藏这是来自JSF客户端的远程组件这一事实。

首先,如果您试图在容器外部访问,则不能使用本地接口。您必须使用远程接口

您可以在sun-web.xml中定义远程接口,也可以在bean中定义EJB注入

sun-web.xml代码:

<ejb-ref>
    <ejb-ref-name>com.xxx.session.UserRemote</ejb-ref-name>
    <jndi-name>corbaname:iiop:127.0.0.xxx:3700#com.xxx.session.UserRemote</jndi-name>
  </ejb-ref>

com.xxx.session.UserRemote
corbaname:iiop:127.0.0.xxx:3700#com.xxx.session.UserRemote

还有一件事,你必须在你的类路径中有远程接口。

这就是问题的本质-我如何部署JSF,以便我可以根据接口进行编译,并让容器管理注入,但是,如果不要求将EJB和JSF打包/部署在一起,您必须在两者中都有共同的代码——这可能是它们共享的JAR。谢谢,我将尝试一下。