我在使用Eclipse運行JBoss的遠程服務器上調試應用程序。我的特殊問題是JSP中的NullPointerException
。 JSP在腳本內部有太多的Java代碼,但不幸的是,重構不會成爲一種選擇。找到引發NullPointerException
的線路非常具有挑戰性,我陷入困境。如何在遠程JBoss服務器上調試JSP?
如何遠程調試此JSP以查找引發的scriplet行?
我最終通過註釋JSP行來找到問題,直到我將問題隔離開來。單調乏味,但它工作。
我在使用Eclipse運行JBoss的遠程服務器上調試應用程序。我的特殊問題是JSP中的NullPointerException
。 JSP在腳本內部有太多的Java代碼,但不幸的是,重構不會成爲一種選擇。找到引發NullPointerException
的線路非常具有挑戰性,我陷入困境。如何在遠程JBoss服務器上調試JSP?
如何遠程調試此JSP以查找引發的scriplet行?
我最終通過註釋JSP行來找到問題,直到我將問題隔離開來。單調乏味,但它工作。
您可以通過添加這樣的事情
-Xdebug -Xrunjdwp:transport=dt_socket,address=5001,server=y,suspend=n
在命令行啓用某些應用服務器遠程調試。然後,在您的IDE中,連接到端口5001以進行遠程調試。 This page有各種應用服務器的例子。
我發現調試JSP有時可以很容易地完成,如果你有編譯JSP的Java源代碼。檢查您的應用程序服務器的JSP編譯手冊或預編譯您的JSP並保存.java文件;然後使用這些文件作爲調試器的源代碼。
通常,您將能夠在服務器日誌中找到錯誤。由於您正在遠程服務器上運行它,請轉至該計算機並檢查日誌。它應該指出錯誤。
如果我正在運行本地版本的站點,我發現它更容易調試,因爲我可以實時通過eclipse監視服務器日誌。也許值得建立一個可以開發的本地副本,然後在完全調試代碼時將其部署到遠程服務器。
希望這會有所幫助。
末服務器日誌的線是: NullPointerException異常在 org.apache.jsp.myjsp._jspService(來源不明) 我可以縮小它的Java代碼在JSP拋出異常,但可以縮小線。 – Owen 2009-06-24 19:12:13
聽起來像是從該JSP中除去了調試符號。即使調試也無濟於事。 – 2009-06-24 19:16:02