java如何指定从中获取EJB的服务器?
在JavaEE中,从远程服务器获取EJB的方法是在JNDI中查找它。该规范定义了给定bean类型的JNDI名称
然而,这似乎只是当你想从你的本地计算机上得到一个bean的时候。我想像大多数用户一样,从远程服务器上获取bean。如何指定服务器URL?我是否将映射传递给InitialContext
构造函数
注意:有another question几乎相同,但自从规范定义了可移植JNDI名称以来,它已经过时了
你可以在下面搜索框中键入要查询的问题!
在JavaEE中,从远程服务器获取EJB的方法是在JNDI中查找它。该规范定义了给定bean类型的JNDI名称
然而,这似乎只是当你想从你的本地计算机上得到一个bean的时候。我想像大多数用户一样,从远程服务器上获取bean。如何指定服务器URL?我是否将映射传递给InitialContext
构造函数
注意:有another question几乎相同,但自从规范定义了可移植JNDI名称以来,它已经过时了
# 1 楼答案
是的,您需要指定远程服务器(JNDI服务)运行/侦听的IP/端口
必须设置属性:java。命名。供应商。url并将其提供给InitialConetxt
这可以在different ways中完成:
该属性和实例化InitialConetct所需的其他属性的具体值取决于供应商。 JBoss的一个例子是:
请记住,如果不指明url,就无法从远程服务器获取EJB的存根。 “远程”是指客户端和服务器在不同的JVM中运行
# 2 楼答案
使用与运行服务器端时完全相同的代码对远程EJB进行JNDI查找:
当然,你也可以注射它:
要使命名上下文正常工作,必须将应用程序作为Java EE应用程序客户端运行。应用程序客户端与常规的独立Java程序完全一样,有一个标准的
main
方法;唯一的区别是,它需要以不同的方式运行。JavaEE规范中没有指定这种方式,因此每个应用服务器都有自己的方式例如,GlassFish需要一个应用程序客户端来include some special jars in the classpath和set a couple system properties。具体来说,必须在类路径中包含
lib/gf-installer.jar
及其清单引用的所有JAR,并且必须设置org.omg.CORBA.ORBInitialHost
和org.omg.CORBA.ORBInitialPort
系统属性