2015-04-18 78 views
0

我試圖使用@DELETE請求後,我已經使用soapui測試了一些簡單的Web應用程序。有了這個應用程序,我可以添加和獲取用戶/書到數據庫。現在我試圖提出@DELETE請求,但我無法做到。這裏是代碼:Apache cxf刪除請求錯誤

//UserServiceImpl 

    @PersistenceContext 
    private EntityManager em; 

    @Override 
    public void deleteUser(Long id) { 
     if (null == id || id.longValue() < 1) { 
      throw new IllegalArgumentException(" User id can not be null or less than zero. "); 
     } 

     User u = em.find(User.class, id); 
     em.remove(u); 

    } 

//UserResource 

    @Autowired 
    private UserService userService; 

    @DELETE 
    @Path("/delete/{id}") 
    public Response deleteUser(@PathParam("id") String id) { 
     Response response; 
     try { 
      User user = userService.deleteUser(Long.valueOf(id));//here is the error 
      if (user != null) { 
       response = Response.status(HttpServletResponse.SC_OK).entity(user).build(); 
      } else { 
       response = Response.status(HttpServletResponse.SC_NOT_FOUND).build(); 
      } 
     } catch (IllegalArgumentException e) { 
      response = Response.status(HttpServletResponse.SC_NOT_FOUND).build(); 
     } 
     return response; 
    } 
+0

沒有任何機構可以回答你的問題,直到除非你提供諸如什麼是您所面臨的錯誤解釋。堆棧跟蹤等 –

+0

可能是關於您的交易管理。什麼是userservice.deleteUser(...)方法的事務定義。 – bhdrkn

回答

0

我已經解決了我的問題。 UserServiceImpl中的delete方法不能是void ....它必須是public User deleteUser(Long id)。 Resource類中的另一個刪除方法只需要是void類型。在那裏,我不使用響應和我簡單地打印出結果是這樣的:

System.out.print(Response.status(HttpServletResponse.SC_OK).entity(user).build());