调用远程EJB的最佳方法

时间:2013-03-22 04:42:28

标签: java-ee java-ee-6

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

是否有更简单的方法可以将我的网络详细信息硬编码到我的应用中?或者这是我能做的最好的事情吗?

谢谢!

-----斯科特。

1 个答案:

答案 0 :(得分:0)

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

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

或打包到您带入类路径的“configuration-resources.jar”中。 This问题涵盖了在某些不同部署方案中读取属性的基础

如果你想更多地关注jndi.properties,请在oracle阅读更多内容,我想使用jndi.properties是更推荐的方式,因为你避免以编程方式阅读属性。但是,只需从文件系统中读取自制的.properties文件,就可以获得更快的结果。