常見問題及其解決辦法
不能啟動J2EE(J2EE培訓 )服務器
命名目錄服務端口沖突 症狀:當你使用-verbose選擇啟動J2EE服務器時,顯示以下信息: J2EE server listen port: 1050 RuntimeException: Could not initialize server. . . 解決辦法:其它程序使用了1050端口。如果J2EE服務已經運行了,你可以通過輸入 j2ee -stop停止這個服務。如果其它程序使用了這個端口,你可以通過修改你的J2EE SDK安裝的config/orb.propertIEs文件以改變默認端口(1050)。 有關默認端口號的更多信息,請參看下載J2EE SDK時同時提供的配置向導。
Web服務端口沖突 症狀:當你使用-verbose選項啟動J2EE服務時,顯示以下信息: LifecycleException: HttpConnector[8000].open: Java.Net.BindException: Address in use. . . 解決辦法:其它程序使用了端口8000。你可以通過修改你的J2EE SDK安裝的config/orb.propertIEs文件以改變默認端口(8000)。
錯誤的XML解析 症狀:當你使用-verbose選項啟動J2EE服務時,顯示以下信息: Exception in thread "main" Javax.XML.parsers.FactoryConfigurationError: org.apache.xerces.jaxp.SAXParserFactoryImpl at . . . 解決辦法:從你的J2SE安裝目錄中刪除jre/lib/jaxp.propertIEs文件。
編譯錯誤
ant不能找到構造文件 症狀:當你輸入ant converter後,顯示以下信息: Buildfile: build.xml does not exist! Build failed. 解決辦法:在運行ant前,先轉到j2eetutorial/examples/src目錄。如果你想要在當前目錄中運行ant,你必須在命令行指定構造文件。例如,在窗口中你需要在同一行中輸入以下命令: ant -buildfile C:J2EEtutorialexamplessrcuild.XML converter
編譯器不能解析符號 症狀:當你輸入ant converter後,編譯器報告很多錯誤,其中包括: cannot resolve symbol . . . BUILD FAILED . . . Compile failed, messages should have been provided 解決辦法:確保你是否已經正確配置了J2EE_HOME環境變量。詳細信息請參閱檢查環境變量。
在你運行客戶端後ant 1.4不能編譯示例 症狀:ant 1.4顯示以下錯誤: The filename, directory name, or volume label syntax is incorrect. 解決辦法:使用ant的1.3版本。對於1.4版本,ant.bat腳本和J2EE SDK的腳本都使用了JAVACMD環境變量。而SDK的runclIEnt.bat腳本可能對JavaCMD進行了設置,這就造成了ant.bat的問題。
部署錯誤
在你的類路徑中錯誤的XML解析 症狀:顯示以下錯誤: . . . []Java.rmi.RemoteException:Error saving/opening
Deployment Error:Bad mapping of key{0} class{1}, not found: com.sum.enterprise.deployment.xml.ApplicationNode 解決辦法:從你的J2SE安裝目錄的jre/lib/ext子目錄下刪除jaxp.jar文件。這個JAR文件包含了和J2EE服務器不兼容的XML解析程序。如果你沒有一個jaxp.jar文件,你的類路徑可能會引用一個Tomcat安裝的XML程序。在這種情況下,你需要從你的類路徑中刪除這個環境。
遠程Home接口被指定為一個本地Home接口 症狀:顯示以下錯誤: LocalHomeImpl must be declared abstract. It does not define javax.ejb.HomeHandle getHomeHandle() from interface Javax.ejb.EJBHome. 解決辦法:從EAR文件中刪除這個enterprise bean(EditDelete)並使用New Enterprise Bean向導建立一個新的bean。在向導的綜合對話框中,選擇Remote Home Interface和Remote Interface組合框。
J2EE應用程序客戶端運行錯誤
客戶端拋出一個NoClassDefFoundError 症狀:客戶端報告以下例外: Java.lang.NoClassDefFoundError:converter.ConverterHome 解決辦法:造成這個錯誤的原因是客戶端不能找到ConverterAppClIEnt.jar文件中的類。請認真檢查你是否正確地按照運行J2EE應用程序客戶端中的部署執行了。
客戶端不能找到ConverterApp.ear 症狀:客戶端報告以下例外: IOException: ConverterApp.ear does not exist 解決辦法:認真檢查ConverterApp.ear文件是否存在,並且為其指定了-client選項: runclient -client ConverterApp.ear -name ConverterClIEnt 有關創建ConverterApp.ear文件的詳細信息請參看創建J2EE應用程序和運行J2EE應用程序客戶端。
客戶端不能找到ConverterClient組件 症狀:客戶端顯示以下信息: No application client descriptors defined for: . . . 解決辦法:檢查你是否已經建立了ConverterClient組件以及是否在runclient命令中指定了-name選項。有關建立ConverterClIEnt組件的詳細信息請參看將J2EE應用程序客戶端打包。
登錄失敗 症狀:在登錄後,顯示如下信息: Incorrect login and/or passWord 解決辦法:在登錄提示符後用戶名輸入guest,口令輸入guest123。
J2EE應用程序未被部署 症狀:客戶端報告以下例外: NameNotFoundException. Root exception is org.omg.CosNaming. . . 解決辦法:部署應用程序,詳細介紹請參看部署J2EE應用程序。
JNDI命名錯誤 症狀:客戶端報告以下例外: NameNotFoundException. Root exception is org.omg.CosNaming. . . 解決辦法:在標志為ConverterApp的JNDI命名面板中,檢查ConverterBean的JNDI命名是否與ejb/SimpleConverter匹配。重新指定正確的JNDI命名並重新部署應用程序。
Web客戶端運行錯誤
Web的URL環境不正確 症狀:浏覽器報告頁面未找到(HTTP 404)。 解決辦法:檢查Web的URL環境(converter)是否與你在Component General PropertIEs對話框中指定的匹配(參見將Web客戶端打包)。在特別注意大小寫的問題。
J2EE應用程序未被部署 症狀:浏覽器報告頁面未找到(HTTP 404)。 解決辦法:部署應用程序。
JNDI命名錯誤 症狀:當你點擊Web頁面上的Submit按鈕後,浏覽器報告 A Servlet Exception Has Occurred。 解決辦法:在標志為ConverterApp的JNDI命名面板中,檢查ConverterBean的JNDI命名和ConverterWAR的JNDI命名是否匹配。重新指定正確的JNDI命名並重新部署應用程序。
校驗工具發現的錯誤 校驗工具(verifier)可以發現部署描述和方法特征之間的矛盾。這些矛盾常常會導致部署和運行時的錯誤。在deploytool中,你可以通過選擇ToolsVerifier運行verifier的GUI版本。你也可以單獨運行verifIEr的GUI版本或命令行版。更多的信息請參看附錄B.
將你的EAR文件與我們的比較 對於這個例子的絕大部分,在下載的文件中包含了J2EE應用程序的EAR文件,它們位於J2EEtutorial/examples/ears目錄下。
其它錯誤 如果上面的這些建議都不能解決問題,你可能需要重新安裝應用程序並通過運行cleanup腳本清除服務器中的存儲內容。你當然還需要關閉並重新啟動服務器: j2ee -stop cleanup J2EE -verbose