为什么在远程EJB3会话Bean上使用InitialContext

ari*_*nte 5 java ejb jndi java-ee ejb-3.0

为什么在调用远程EJB时需要指定各种驱动程序信息?

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099
Run Code Online (Sandbox Code Playgroud)

我们不应该只需要指定url/port,EJB容器应该解决所有其他的东西吗?

小智 1

因为并非所有 EJB 容器都使用相同的属性。此属性适用于 Jboss 容器。

例如 Glassfish 使用此属性:

java.naming.factory.initial=com.sun.enterprise.naming.SerialInitContextFactory
java.naming.factory.url.pkgs=com.sun.enterprise.naming
java.naming.factory.state=com.sucn.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl
org.omg.CORBA.ORBInitialHost=localhost
org.omg.CORBA.ORBInitialPort=3700
Run Code Online (Sandbox Code Playgroud)

  • 呃,我知道我试图理解为什么它不以更通用的方式处理。您所要做的就是将其指向主机,容器应该解决所有其他问题。 (2认同)