2017-06-14 108 views
0

JAX-RS的我的GET功能可以很好地工作。我現在正在開發自己的POST方法,但是這不斷給我405錯誤。我的資源指向我的DAO。JAX-RS 405方法不允許

我的代碼中是否有錯誤?

資源

@POST 
@Path("/insert") 
public void insertIngredient(@QueryParam("Q1") int hoeveelheid, @QueryParam("Q2") String datum,@QueryParam("Q3") String ingredientnaam , @QueryParam("Q4") String gebruikersnaam) { 
    IngredientService service = ServiceProvider.getIngredientService(); 
    service.insertIngredient(hoeveelheid, datum, ingredientnaam, gebruikersnaam); 
} 

DAO

public void insertIngredient(int hoeveelheid, String datum, String ingredientnaam, String gebruikersnaam) { 
    try (Connection con = super.getConnection()) { 
     Statement stmt = con.createStatement(); 
     ResultSet nextId = stmt.executeQuery("SELECT MAX(dagboek_id) FROM dagboek"); 
     int maxId = nextId.getInt("dagboek_id") + 1; 

     stmt.executeQuery("insert into dagboek(dagboek_id, hoeveelheid, datum, fk_ingredientnaam, fk_gebruikersnaam) values('"+maxId+"','" + hoeveelheid + "','" + datum + "','" + ingredientnaam + "','" + gebruikersnaam + "')"); 

    } catch (SQLException sqle) { 
     sqle.printStackTrace(); 
    } 
} 

回答

0

一個HTTP 405方法不被允許,你有正確的端點,但沒有得到一個正確的HTTP方法手段。它與您的端點實現無關。檢查常見的潛在問題有:

  1. 您確定要將請求作爲POST嗎?
  2. 您是否配置了服務器以允許POST到該特定端點?
  3. 你有一種覆蓋過濾器的方法嗎?