2017-04-06 20 views
0

不使用表單的工作我的代碼看起來像這樣:投入到Web服務在Java中

 Form form = new Form(); 
     form.param("svnr", svnr); 
     form.param("vorname", vorname); 
     form.param("nachname", nachname); 
     client.target(REST_SERVICE_URL + "/lehrer").request(MediaType.APPLICATION_JSON) 
       .put(Entity.entity(form, MediaType.APPLICATION_FORM_URLENCODED_TYPE), String.class); 

而且Web服務看起來像這樣:

@PUT 
@Path("/lehrer") 
@Produces(MediaType.APPLICATION_JSON) 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public Response createLehrer(@FormParam("svnr") String svnr, @FormParam("vorname") String vorname, 
     @FormParam("nachname") String nachname, @Context HttpServletResponse servletResponse) { 
    Lehrer lehrer = new Lehrer(svnr, vorname, nachname); 

    ManagementDAO.instance.addLehrer(lehrer); 


    return Response.ok(lehrer, MediaType.APPLICATION_JSON).build(); 
} 

我得到這個異常:

javax.servlet.ServletException: javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:659) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error 
org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:968) 
org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:795) 
org.glassfish.jersey.client.JerseyInvocation.access$500(JerseyInvocation.java:91) 
org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:683) 
org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
org.glassfish.jersey.internal.Errors.process(Errors.java:228) 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424) 
org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:679) 
org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:435) 
org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:323) 
klauss.examples.jsf.db.JSFDatabase.addLehrer(JSFDatabase.java:167) 

你知道如何解決這個問題嗎?我不知道如何解決它。我嘗試了一切,但似乎沒有任何工作。

+0

我認爲這個異常是從'klauss.examples.jsf.db.JSFDatabase.addLehrer(JSFDatabase.java:167)'拋出的。如果該類是您的實施,請編輯該問題幷包含源代碼。 –

+0

這是一行:'client.target(REST_SERVICE_URL +「/lehrer").request(MediaType.APPLICATION_JSON) .put(Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE),String.class);' – adnfkas

+0

我相信網絡服務引發了一個異常。您應該檢查服務器日誌以進行調查。 –

回答

0

500內部服務器錯誤是一個非常普遍的HTTP狀態代碼,這意味着網站服務器上出現了問題,但服務器無法針對確切問題進行更具體的描述。

您正在獲取HTTP代碼500意味着,您的客戶端已到達服務器。您需要在服務器端代碼中添加一些記錄器。可能是一個try {} catch()塊來查找服務器端出了什麼問題。