【问题标题】:Obtaining initial context from remote client从远程客户端获取初始上下文
【发布时间】:2016-09-29 11:15:24
【问题描述】:

请看下面的代码:

Context ctx = null;
ctx=new InitialContext();
TestEJBRemote t = (TestEJBRemote) ctx.lookup("java:global/EJBTest/EJBTest-ejb/TestEJB");
System.out.println(t.getName("Ian"));

输出是我所期望的,即 Hello Ian。

以上代码假定客户端与 Glassfish 实例安装在同一台计算机上。如何从远程应用程序客户端获得相同的结果。我试过这个:

Context ic = new InitialContext();
        TestEJBRemote t = (TestEJBRemote) ic.lookup("corbaname:computer:4848#/a/b/TestEJB");
        System.out.println(t.getName("Ian"));

会产生错误。我假设该端口是安装 Glassfish 的端口。

【问题讨论】:

    标签: java jakarta-ee jndi glassfish-4


    【解决方案1】:

    对于连接到 GlassFish 和 Payara 的远程客户端,我通常使用以下内容:

    Properties props = new Properties();  
    props = new Properties();
    props.setProperty("java.naming.factory.initial",
        "com.sun.enterprise.naming.SerialInitContextFactory");
    props.setProperty("java.naming.factory.url.pkgs",
        "com.sun.enterprise.naming");
    props.setProperty("java.naming.factory.state",
        "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    props.setProperty("org.omg.CORBA.ORBInitialHost", "127.0.0.1");
    props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
    InitialContext ctx = new InitialContext(props);
    
    MyBeanRemote bean = (MyBeanRemote) ctx.lookup("com.example.MyBean");
    

    从您的示例中,我可以想象您的原始查找将在这种情况下工作:

    TestEJBRemote t = (TestEJBRemote) ctx.lookup("java:global/EJBTest/EJBTest-ejb/TestEJB");
    

    如果您有多个远程端点,您可以通过以下方式在它们之间进行负载平衡:

    Hashtable env = new Hashtable();
    env.put("com.sun.appserv.iiop.endpoints","host1:port1,host2:port2,...");
    InitialContext ctx = new InitialConext(env);
    

    参考:https://docs.oracle.com/cd/E26576_01/doc.312/e24930/java-clients.htm#GSDVG00075

    【讨论】:

    • 谢谢。这确实有效。为什么您的上下文查找路径包含句号,而我的包含正斜杠?为答案 +1。
    • 这只是我从链接的 Oracle 文档中摘录的一个示例,并且更加清晰。在该查找中,它只是 bean 本身及其包,而您(正确地)使用了全局查找并包含 appname/EJB-JAR-name/BeanName 路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多