java - 如何指定从中获取 EJB 的服务器?

标签 java jakarta-ee ejb jndi

在 java EE 中,从远程服务器获取 EJB 的方法是在 JNDI 中查找它。该规范定义了给定 bean 类型的 JNDI 名称。

但是,这似乎仅适用于您想从本地计算机获取 Bean 的情况。我想像大多数用户一样从远程服务器上获取 bean。如何指定服务器 URL?我是否将映射传递给 InitialContext 构造函数?

注意:有another question这几乎是相同的,但自从规范定义可移植 JNDI 名称以来,它已经过时了。

最佳答案

I want to get the bean off a remote server

是的,您需要指定远程服务器(JNDI服务)运行/监听的IP/端口。

How do I specify the server URL?

您必须设置属性:java.naming.provider.url 并使其可供 InitialConetxt 使用。

这可以在 different ways 中完成:

  1. 使用 jndi.properties 文件
  2. 使用系统属性
  3. 在创建新实例时传递哈希表中的值 InitialContext 对象。

此属性以及实例化 InitialConectt 所需的其他属性的具体值取决于供应商。 JBoss 的一个例子是:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://yourServer:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

请记住,如果您不指定 URL,则无法从远程服务器获取 EJB 的 stub 。 我所说的“远程”是指客户端和服务器运行在不同的 JVM 中。

关于java - 如何指定从中获取 EJB 的服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937514/

相关文章:

testing - Jakarta Cactus 备用?

java - 调用invokeMethod时出错

java - 为什么 Arquillian 中不再有模拟?

java - EJB @DependsOn 和 CDI 实例不工作

java - android.view.ViewRoot$CalledFromWrongThreadException :

java - 如何使用java调用python文件的方法

java - 如果我在 Spring 中运行 Hibernate 请求,为什么会收到 ClassCastException?

java - 我应该使用哪些 Java 加密算法?

java - 如何开发 Java Web 应用程序而不必一直部署

java - Wildfly jms配置