當前位置:開發者網絡 >> 技術教程 >> JSP教程 >> J2EE/EJB/服務器 >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
j2ee常見錯誤(放到這裡備查)
作者:未知
日期:2005-04-20
人氣:
投稿:(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
  
常見問題及其解決辦法 
不能啟動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 
相關文章: