2016-05-10 48 views
0

我是一個初學者,試圖用澤西島來實現一個簡單的CRUD應用程序。我試圖根據用戶通過網頁傳遞的輸入刪除一行。但我的方法沒有被調用,我收到以下錯誤。無法使用澤西從數據庫中刪除資源

HTTP Status 405 - Method Not Allowed 

type Status report 

message Method Not Allowed 

description The specified HTTP method is not allowed for the requested resource. 

以下是我的刪除函數,它應該基於它通過html獲取的FormParam進行刪除。

 @DELETE 
     @Path("/delete") 
     @Produces(MediaType.TEXT_HTML) 
     public void delEmployeeFormParam(@FormParam("Employee_id") int employee_id){ 

      java.net.URI location= null; 
      System.out.println("teting"); 
      try 
      { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Employee_db", "root", "root"); 

       String query = "delete from employee where emp_id = (?)"; 

       PreparedStatement st = con.prepareStatement(query); 
       st.setInt(1, employee_id); 
       st.executeQuery(); 

      } 
      catch (Exception e) 
      { 
       System.out.println(e.getMessage()); 
      } 

     } 

html代碼如下所示。

<body> 
    <h3> Enter Employee Id to Delete </h3> 

    <div> 
     <form method="DELETE" action="http://localhost:8080/RESTCRUD/rest/employee/delete"> 
      <p>Employee Id: <input type:"text" name="Employee_id"/></p> 
      <input type="submit" value="submit"/> 
     </form> 
    </div> 

</body> 

有一點要注意其他方法,如GET和POST工作正常。

回答

0

我不認爲HTML表單支持DELETE(只有GET和POST)。有關更多詳細信息,請參閱here這個問題。

HTML表單(高達HTML版本4和XHTML 1)僅支持GET和 POST作爲HTTP請求方法。

+0

對於調試,你可以做幾件事情。您可以使用類似'curl'的命令行工具或瀏覽器REST API調用擴展來測試DELETE並確認服務器配置正確。您還可以附加代理或記錄請求參數,以查看瀏覽器真正傳遞的內容。 – Pace