2010-06-10 60 views
1

我已經爲servlet創建了一個動態網頁。當我嘗試運行該項目時出現以下錯誤:eclipse servlet問題

http starus 500 

javax.servlet.ServletException: Error instantiating servlet class ch.uzh.ifi.attempto.aceeditor.MyMainServlet 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873) 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
java.lang.Thread.run(Unknown Source) 

我該如何解決這個問題?

+1

顯示一些代碼可以幫助... – 2010-06-10 12:30:57

+0

不,代碼只會渾渾噩噩。這是一個包裝/部署問題。 – duffymo 2010-06-10 12:37:02

+0

這只是「ServletException」。在堆棧跟蹤中沒有**根本原因**?它應該更多地說明問題的原因。仔細觀察跟蹤,更新您的問題以包含**整個**跟蹤。不,顯示代碼根本無濟於事:) – BalusC 2010-06-10 12:40:57

回答

0

你能檢查以下幾點: servlet條目在web.xml中是否正確? (沒有拼寫錯誤,正確的包,...)

該servlet類是否在classpath中,與web.xml中給出的路徑相同?

看起來像其中之一。

你在使用什麼服務器?

+0

看起來像堆棧跟蹤中的Tomcat。發佈servlet代碼將無濟於事。這是一個部署問題。 – duffymo 2010-06-10 12:36:31

+0

@duffymo是的,這看起來像一個部署問題。想知道web.xml條目並驗證servlet名稱/包是完全一樣的。這就是爲什麼要求servlet代碼。也許應該直接詢問。編輯。 – Nivas 2010-06-10 13:01:48

1

無法從堆棧跟蹤告訴我們 - 可以是任何一些事情:

  1. Servlet的.class文件不存在
  2. Servlet的.class文件不正確的包目錄結構
  3. Servlet .class文件不在WEB-INF/classes下
  4. Servlet在web.xml中未正確註冊
  5. WAR文件不正確。
  6. WAR文件配置不正確。
  7. 用於調用servlet的URL不正確。

我建議從this開始,並仔細審查你所做的一步一步。

+0

希望它有幫助 - 看起來像他依賴於日食,所以它可能是一個與日食相關的配置問題太... – 2010-06-10 12:39:52

+0

同意 - 我認爲這是一個壞主意,直到你可以手動部署沒有Eclipse。 – duffymo 2010-06-10 13:49:57

0

我發現一個基本的測試servlet正在工作。 基本的servlet擴展了類HttpServlet。

我想運行的servlet擴展了WebContainerServlet類,所以我相信這是錯誤的來源。

現在我得到的錯誤是

javax.servlet.ServletException:錯誤分配Servlet實例 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) ... 做你需要我發佈所有的堆棧跟蹤?