2013-03-22 63 views
1

我在嘗試提高對遠程EJB調用的理解。調用遠程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」的解決方案,但到目前爲止我還沒有得到任何工作,並且無論如何,這仍然需要我重新編譯和重新部署來改變任何東西。

有沒有一種更簡單的方法來做到這一點,而不需要將我的網絡細節硬編碼到我的應用程序中?或者這是我能做的最好的?

謝謝!

-----斯科特。

回答

0

我認爲外部的.properties文件是避免重新編譯的方法。

這個文件既可以是外部包裝的.jar作爲文件系統

或打包一個單獨的文件到您帶來到類路徑「配置 - resources.jar」。 This問題佔地面積一些不同的部署場景讀取性能基本

如果你想dwelve多地進入jndi.properties,閱讀更多的oracle,我想使用jndi.properties更多的是推薦的方式,爲您避免以編程方式讀取屬性。但是你可以通過從文件系統中讀取一個自制的.properties文件來達到更快的結果。

+0

謝謝,我將不得不更多地瞭解configuration-resources.jar! – sgifford 2013-03-22 19:30:17

+0

我可能會誤導你。我的意思是,您可以將配置文件打包到單獨的.jar文件中,而不是將它們捆綁到您的應用程序jar文件中。這裏沒有任何概念,它只是我編造的一個名字。 – 2013-03-22 19:32:41

+0

啊,我看到了,我搜索了「configuration-resources.jar」,並提出了一些命中,所以我認爲這是一回事。所以他們只是我的應用程序WAR或EAR文件中的一個單獨的JAR? – sgifford 2013-03-22 20:08:14