2014-02-26 175 views
0

我正在和一位朋友談論Web應用程序(.war文件)從應用程序服務器到應用程序服務器的可移植性。具體來說,如果我有一個包含我的業務邏輯的.war文件,我的ejb jar和我的'web'組件,比如html/css/js。EJB可移植性

他似乎暗示我可以像在Glassfish服務器上那樣容易地將戰爭部署到jboss服務器,而無需修改代碼。

我的評論是,我不認爲這是正確的,因爲例如,如果在我的一個servlet中進行EJB查找,導出的JNDI名稱可能因服務器供應商而異。因此,如果我將EJB部署到jboss服務器,那麼用於查看它的JNDI名稱可能會與將它部署在glassfish服務器上的JNDI名稱略有不同,因此JNDI查找字符串將會不同。

這是不是真的? JNDI命名約定標準是什麼?我還在學習。

回答

1

你是對的,有時你可能會有這樣的問題。 例如,大多數應用程序服務器使用java:comp/UserTransaction作爲UserTransaction接口的JNDI,但在JBoss AS7中,JNDI是java:jboss/UserTransaction。

另一方面,您可以將JNDI名稱作爲應用程序中的可配置參數,並且移植應該更容易。

總而言之,您的應用程序可能會被移植到另一個服務器而沒有任何更改,但您不能認爲它是理所當然的。通常當你有這樣的問題時,這不是一件容易的事情。