2014-04-28 27 views
0

運行Eclipse的開普勒(Windows 7)中一個基本的servlet時,我收到以下錯誤與GAE SDK 1.9.3和Java 7:HttpServlet是一個受限制的類。請參閱谷歌App Engine的

java.lang.NoClassDefFoundError: javax.servlet.http.HttpServlet is a restricted class. 
Please see the Google App Engine developer's guide for more details. 

重現:

  1. 安裝Java 7 SDK
  2. 安裝開普勒
  3. 安裝GAE Eclipse插件
  4. 創建GAE Web項目
  5. 實現一個基本的servlet的init方法和web.xml
  6. 設置load-on-startup1然後運行Web應用程序

我試了2臺機器,我得到了同樣的錯誤。

+0

你能否提供第5步的代碼? –

+0

只需重寫Servlet和System中的init(ServletConfig config)即可。如果啓動時加載設置爲1,則會在啓動時調用該方法。 – user3582739

+0

更新:如果使用不正確的URL,則會出現同樣的錯誤。例如:http:// localhost:8888/abc: 訪問/ abc時出現問題。原因: javax.servlet.FilterChain是一個受限制的類。有關更多詳細信息,請參閱Google App Engine開發人員指南。 導致: \t java.lang.NoClassDefFoundError:javax.servlet.FilterChain是一個受限制的類。 我不明白爲什麼這個受限制的類錯誤。 – user3582739

回答

0

通過擴展HttpServlet創建一個servlet,然後在您的servlet中覆蓋doPost()doGet()方法。例如:

public class FileServlet extends HttpServlet { 

    @Override 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      // do something 
    } 
0

那麼,我發現什麼是錯的,這是我的錯誤。抱歉。當我安裝Java 7時,我爲JDK和JRE指定了一個不同的目錄,除了我給了兩次相同的位置並且文件混淆以外。我的GAE問題是一個副作用。

相關問題