1

我正在努力提高我对远程 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”的解决方案,但到目前为止我还没有任何工作,无论如何这仍然需要我重新编译和重新部署以更改任何内容。

有没有一种更简单的方法,不需要将我的网络详细信息硬编码到我的应用程序中?或者这是我能做的最好的吗?

谢谢!

-----斯科特。

4

1 回答 1

0

我认为外部 .properties 文件是避免重新编译的方法。

该文件可以在打包的 .jar 之外作为文件系统中的单独文件

或打包到您带入类路径的“configuration-resources.jar”中。这个问题涵盖了在一些不同的部署场景中读取属性的基础知识

如果您想深入了解 jndi.properties,请在oracle阅读更多内容,我想使用 jndi.properties 是更推荐的方式,因为您避免以编程方式读取属性。但是您可以通过从文件系统中读取自制的 .properties 文件来获得更快的结果。

于 2013-03-22T05:55:08.377 回答