我正在尝试在我的机器上构建一个预先制作的项目,以便我能够更多地了解EA和EJB。
我已经在Glassfish上部署了EA应用程序以及所需的库。但是当我尝试通过JNDI连接我的客户端应用程序时,它会卡在查找中(显示没有错误,只是卡住了)。
glassfish服务器上是否需要任何其他配置?
glassfish服务器位于ubuntu服务器虚拟机中,而客户端位于另一个虚拟机中(在netbeans上运行)。
我的代码有问题吗?
public static void getRefs(){
InitialContext ctx = null;
Properties prop = new Properties();
prop.setProperty("java.naming.factory.initial",
"com.sun.enterprise.naming.SerialInitContextFactory");
prop.setProperty("java.naming.factory.url.pkgs",
"com.sun.enterprise.naming");
prop.setProperty("java.naming.factory.state",
"com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
prop.setProperty("org.omg.CORBA.ORBInitialHost","192.168.56.175");
prop.setProperty("org.omg.CORBA.ORBInitialPort","3700");
try {
ctx = new InitialContext(prop);
}
catch(NamingException e){
System.out.println(e.getMessage());
System.exit(1);
}
System.out.println("InitialContext Created");
String advremote =
"java:global/adv-ea/adv-ea-ejb/AdvClient!advgame.AdvClientRemote";
try{
System.out.println("Start lookup");
Object x = ctx.lookup(advremote);
gw = (AdvClientRemote)x;
}
catch (NamingException e){
System.out.println(e.getMessage());
e.printStackTrace();
System.exit(1);
}
System.out.println("JNDI lookup concluded");
}
编辑:这可能因为缺少图书馆而发生吗?我将在这里放一个项目架构的图像,以确保我没有错过任何东西:
另一个编辑:它适用于localhost:39002,所以问题应该出在连接/端口上。