gpt4 book ai didi

java - 如何将查找与字符串绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 12:52:59 25 4
gpt4 key购买 nike

我的程序是 包客户端;

import homeif.HelloWorldHome;
import remoteif.HelloWorld;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import java.awt.image.LookupOp;
import java.util.Properties;

public class HelloClient {
public static void main(String args[]) {
try {


Context initialContext = new InitialContext();

Object object = initialContext.lookup("myHelloWorld");
HelloWorldHome home =
(HelloWorldHome) PortableRemoteObject.narrow(object,
HelloWorldHome.class);
HelloWorld myHelloWorld = home.create();
String message = myHelloWorld.sayHello();
System.out.println(message);
} catch (Exception e) {
System.err.println(" Error : " + e);
System.exit(2);
}

}
}

我收到 javax.naming.NameNotFoundException:myHelloWorld 未绑定(bind)。我尝试使用 initialContext.bind("myHelloWorld",null); 绑定(bind)它但得到一个 NullPointerException。我的 jndi.properties 包括

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactoryjava.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfacesjava.naming.provider.url=jnp://localhost:1099
I have specified lookup-name myHelloWorld in ejb-jar.xml. what should I have to do to bind the lookup

In jonas-ejb-jar.xml   
ejb-name->HelloWorld
jndi-name->myHelloWorld

最佳答案

您尝试连接的 JNDI 名称(“myHelloWorld”)似乎不正确。您的 JNDI 名称应该绑定(bind)在 Java 范围或全局范围中。如果它在 Java 命名范围内,那么您应该使用 java:myHelloWorld 访问它,否则直接访问它。您可以从 Jboss 管理控制台验证命名范围。 Java 名称 sapce 的意思是,它只能从同一服务器访问。全局 namespace 意味着可以从任何其他服务器访问它。您可以使用 ejb-jar.xml 中的配置来控制它。

另一种可能性是您的 bean 未正确部署。它将在启动时在服务器日志中显示一条消息。该消息还包含 bean 绑定(bind)的 JNDI 名称。尝试重新启动服务器可以看到您可以获得此详细信息

关于java - 如何将查找与字符串绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24080004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com