当前位置: 首页 > 面试题库 >

什么是EJB中的本地/远程和无接口视图?

季森
2023-03-14
问题内容

我试图了解EJB的目的以及为什么需要不同的客户端视图。有人可以解释吗?


问题答案:

远程客户端视图

当您的EJB及其客户端位于分布式环境中时-意味着EJB和客户端将驻留在单独的Java虚拟机上。示例:托管在WebSphere Application
Server上的EJB和使用Tomcat服务器上托管的EJB API的Servlet。

本地客户视图

仅在保证其他企业Bean或客户机仅在单个JVM中寻址该Bean时,才可以。例如,EJB以及部署在同一WebSphere服务器上的Servlet。

无界面视图

与本地客户端视图几乎相同,但是有所不同。在这种情况下,不需要bean类来实现客户端视图接口。bean类的所有公共方法都会自动向调用者公开。无接口视图总是通过注入或JNDI查找来获取EJB引用,就像本地或远程视图一样;但是,EJB引用的Java类型是bean类类型,而不是本地接口的类型。这是作为Java
EE6的一部分引入的一种便利。

本地客户端视图和无接口视图的区别

在无接口视图的情况下,客户机和目标Bean必须包装在同一应用程序(EAR)中。在本地视图中,客户端可以打包在与企业应用程序不同的应用程序中。因此,在细化组件方面,这提供了更大的灵活性。

您可以使用本地客户端视图还是无接口视图,具体取决于您的API使用情况。无接口视图很有可能在将来的规范中获得灵活的功能。

原因

在历史上或其他情况下,希望使用EJB服务的客户端应该在容器上(具有某些初始上下文)“查找”
bean。那是因为所有调用都是通过容器提供的特殊EJB引用(代理)进行的。这允许容器提供所有附加的bean服务,例如池化,容器管理的事务等。因此,客户端无法使用new运算符显式实例化EJB
。客户端视图是通过客户端可以访问的某些接口提供的。服务器端的代理实现是基于这些接口完成的。如上所述,定义了不同的客户端视图以适合不同的部署方案。



 类似资料:
  • 问题内容: 我是Java EE的新手,我试图理解本地接口和远程接口的概念。有人告诉我Java EE的一大优点是易于扩展(我相信这意味着您可以在不同的服务器上部署不同的组件)。那是远程和本地接口进入的地方吗?如果您希望应用程序在不同的服务器上具有不同的组件,则应该使用远程接口吗?如果您的应用程序仅驻留在一台服务器上,并使用本地接口? 如果我的上述假设正确,那么您将如何选择对于新应用程序使用本地接口还

  • 我需要帮助从Spring调用EJB远程接口。 web应用程序部署在同一个JBoss服务器中。但是当我尝试部署时,我得到一个命名异常'ServiceBean'未绑定。我必须在web.xml中添加环境条目才能访问EJB吗(即使EJB和web应用程序都部署在同一个JBoss中)?

  • 当我将()连接到URL时。Java是否像浏览器那样获取网页,而不显示它? 例如,我试图理解是否要连接到Youtube视频URL。即使我看不到页面,URL连接是否像从典型的浏览器中一样加载页面和播放视频(没有页面的UI或视觉表示)?

  • 我是FTPS客户端的新手,我正在尝试连接到笔记本电脑中创建的FTPS。我不知道某些方法的工作原理和它们的参数含义。例如,在我的代码中,我创建了一个FTPSClient,如下所示: 然后使用带有ip地址的connect()方法连接到服务器。 在每一步之后,我将使用检查回复代码。 在下面的代码中,我知道用户名=系统用户名密码=登录密码 在我的系统中的互联网信息服务(IIS)。用ssl创建了一个ftp服

  • 我不能从另一个ejb模块注入远程ejb。我把应用程序分成一个库和两个ejb模块。我尝试通过远程接口从一个ejb模块访问另一个模块,并获得javax.naming.NameNotFoundExc0019。我尝试从NewBean"@EJB私有CountryFacadeRemote"访问。我用了玻璃鱼。 我必须配置一些东西?谢谢。 下载源代码 MyAppTestEJB域名库: *国家: *Country

  • 我有一个EAR应用程序,有三个模块: null 这是工作良好的,但现在我必须使用相同的豆子外耳应用程序,注射是不工作的。 我在app-ejb中有: 以及他在app-remote中的远程界面: 这是意料之中的吗?如何才能正确地注入远程bean?