2012-03-14 54 views
3

即時瞭解谷歌應用程序引擎框架和服務,併爲此我構建了谷歌自己提供的谷歌應用程序引擎主頁「文檔」下的教程。谷歌應用引擎:ClassNotFoundException部署後,但本地服務器上運行良好

本教程非常簡單,構建了一個留言簿web應用程序,該應用程序使用數據存儲來保存用戶的「問候語」。 我在教程上用手做了一切事情,並且一切都像他們所說的那樣。它運行得很好,當我從eclipse運行它時,沒有任何錯誤。

,所以我部署它(有沒有錯誤,「成功地部署」)剛看到它轉移到更困難的例子之前運行,但我得到一個錯誤500檢查日誌,我收到了:「拋出java.lang.ClassNotFoundException :guestbook.SignGuestbookServlet「多數民衆贊成從應用程序的唯一的servlet,它運行得很好,從我的機器爲什麼不從應用程序引擎?

web.xml上的映射是正確的(就像google一樣),appengine-web.xml有應用程序名稱。它會是什麼? 在此先感謝。

編輯:好吧,現在我覺得啞巴。顯然我必須在部署之前構建,我認爲deply過程會爲我構建一切從頭開始,猜測我錯了。對不起浪費任何時間,我希望有時它可以幫助有同樣問題的人。

+0

你可以把完整的堆棧跟蹤 – 2012-03-14 22:57:59

回答

2

我曾經有同樣的問題。正如我想起的那樣,我忘了在戰爭文件中添加一些依賴關係。本地服務器上有類路徑上的jar,但是appengine服務器沒有,因此我得到了一個ClassNotFoundException異常。

因此,您可能需要檢查戰爭中包含哪些罐子。

+0

謝謝你的答案。所以我唯一的.java是一個叫做SignGuestbookServlet.java的servlet,我試着將它複製到war文件夾中,並且沒有工作。我已經使用 guestbook.SignGuestbookServlet映射到web.xml文件(war文件夾內的那個文件),但它仍然不起作用。我不使用任何外部.jar,除了應用程序引擎的外部,這是在war/lib文件夾內。是否有另一個文件,我應該編輯添加類路徑?也許appengine-web.xml?大多是空的(是自動生成的)。 – sap 2012-03-14 22:54:50

+1

你的問題可能會有所不同,答案是非常通用的。 – 2012-03-14 22:57:39

2

從Eclipse運行的問題是Eclipse將所有內容和廚房水槽放入類路徑中。

我建議你展開你的部署war文件並檢查WEB-INF/classes和WEB-INF/lib並確保你的.class文件存在。

1

我有同樣的問題,然後我意識到,我指出appcfg與錯誤的WEB-INF目錄。請記住,不要將appcfg指向源WEB-INF,而是指向目標WEB-INF(例如:指向由mvn包生成的WEB-INF,包含classes /和lib /的包)。

相關問題