© Copyright International Business Machines Corporation 2006. All rights reserved.US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.
如果 WebSphere Application Server 上執行的多個 EAR 專案共用一個 Enterprise JavaBean (EJB) 模組,且從伺服器移除其中一個 EAR 專案,則其他 EAR 專案必須重新啟動,才能存取此 EJB 專案中的資源,例如 EJB Bean。
如果未執行這個動作,可能會出現類似下列的錯誤訊息。發生這些錯誤是因為移除 EAR 時,伺服器中也移除 EJB 專案的 Java 命名和目錄介面 (JNDI) 名稱。
下列是錯誤訊息範例:
00000028 SystemOut O javax.naming.NameNotFoundException: Context: myCell/nodes/myNode/servers/server1, name: ejb/ejbs/Session20Home: First component in name Session20Home not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
at com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
at javax.naming.InitialContext.lookup(InitialContext.java:363)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
at ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
at ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
at ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)
假設有一個使用下列配置的專案,例如「應用程式用戶端」專案:
- Java 的 Poject Facet 設為 1.4 版
- 此專案的目標伺服器執行時期在伺服器配置中已啟用「置換常用方法」選項
您可能發現「除錯」視圖中的「回復」按鈕無法正常運作。例如,在伺服器上以除錯模式執行應用程式時,您試圖在執行時期變更程式檔,然後利用「回復」按鈕來繼續對應用程式除錯。您可能發現置換常用方法對程式碼的變更無法生效。
請嘗試按兩次「回復」按鈕,讓執行時期變更生效。
附註:將 Java 的 Poject Facet 設為 5.0 版時不會發生這個問題。
如果將公用程式 JAR 檔新增至 Web 專案的 Web 程式庫,且在程式碼中參照 JAR 檔內的類別,當您嘗試在伺服器上執行應用程式時,可能會發生 java.lang.NoClassDefFoundError 錯誤。
暫行解決方法是在公用程式 JAR 檔新增至 EAR 模組之後,完成下列步驟,將 JAR 檔新增至 Web 專案的 J2EE 模組相依關係:
- 將公用程式 JAR 檔新增至 EAR 模組。如需詳細資訊,請參閱產品說明中的新增專案公用程式 JAR 檔主題。
- 用滑鼠右鍵按一下 Web 專案,選取內容。這時會開啟「內容」對話框。
- 選取 J2EE 模組相依關係。
- 在 J2EE 模組標籤中,請在 JAR/模組直欄下選取您的公用程式 JAR 檔的勾選框。
如果遠端伺服器已停止,在「新建伺服器」精靈中按一下完成按鈕之後,需要經過很久才會完成。暫行解決方法是先啟動遠端伺服器,然後才在「新建伺服器」精靈中按一下完成按鈕。
如果安全的 WebSphere Application Server 6.1 版已啟動,且您在伺服器編輯器中將伺服器連線類型改為遠端方法呼叫 (RMI) 或 SOAP,則儲存伺服器編輯器中的變更之後,可能會出現下列發佈失敗的錯誤訊息:
未執行發佈,因為伺服器未啟動。執行發佈作業之前,請先啟動伺服器。
您可以放心地忽略這項錯誤。或者,您可以等到「伺服器」視圖中的伺服器狀態變成已啟動之後再完成發佈指令(在「伺服器」視圖中,用滑鼠右鍵按一下伺服器,再選取發佈)。