2016-05-10 4 views
0

私は初心者で、ジャージーを使用して簡単なCRUDアプリケーションを実装しようとしています。私は、Webページを介してユーザーによって渡された入力に基づいて1つの行を削除しようとしています。しかし、私のメソッドが呼び出されていない私は次のエラーを取得しています。ジャージーを使用してデータベースからリソースを削除できません

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に基づいて削除する必要があるmy delete関数です。

 @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バージョン4とXHTML 1まで)

HTMLフォームは、GET HTTPリクエストメソッドとして POSTをサポートします。

+0

デバッグでは、2つのことができます。 'curl'やブラウザのREST API呼び出し拡張のようなコマンドラインツールを使って、DELETEをテストし、サーバが正しく設定されていることを確認することができます。また、プロキシを添付したり、リクエストパラメータを記録して、実際にブラウザから何が渡されているかを確認することもできます。 – Pace

関連する問題