我正在努力提高对远程EJB调用的理解。
我有这样的代码工作,它在我的服务器上执行远程JNDI查找:
private InitialContext jndiContext;
private AdderBeanRemote bean1;
Properties props = new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.SerialInitContextFactory");
props.setProperty("org.omg.CORBA.ORBInitialHost", "10.0.0.99");
props.setProperty("org.omg.CORBA.ORBInitialPort", "3700");
jndiContext = new InitialContext(props);
bean1 = (AdderBeanRemote) jndiContext.lookup("com.suspectclass.sgifford.test8bean.AdderBeanRemote");
但这似乎很复杂,并且将许多特定于应用程序的数据硬编码到我的应用程序中;例如,如果我想使用不同的服务器或重新编号我的网络,我将不得不修改我的应用程序,然后重新编译和重新部署。
我见过一些使用“jndi.properties”的解决方案,但到目前为止我还没有任何工作,无论如何,这仍然需要我重新编译和重新部署以改变任何东西。
是否有更简单的方法可以将我的网络详细信息硬编码到我的应用中?或者这是我能做的最好的事情吗?
谢谢!
-----斯科特。