无法使用jersey从数据库中删除资源

时间:2016-05-10 22:56:43

标签: java jersey-2.0 restful-architecture

我是初学者,尝试使用jersey实现一个简单的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)工作正常。

1 个答案:

答案 0 :(得分:0)

我不认为HTML表单支持DELETE(仅限GET和POST)。有关详细信息,请参阅此问题here

  

HTML表单(最高为HTML版本4和XHTML 1)仅支持GET和   POST作为HTTP请求方法。