2014-04-15 168 views
2

考慮澤西代碼:REST澤西導致HTTP狀態500 - 內部服務器錯誤

package com.rest; 

import javax.ws.rs.FormParam; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.POST; 
import org.json.JSONException; 
import org.json.JSONObject; 

/** 
* @author X3 
* 
*/ 
@Path("/returnjson") 
public class JsonReturn { 

     @POST 
     @Path("/inner")   
     @Produces("application/json") 
     public MyJaxbBean getMsg(@FormParam("param1") String para1, 
           @FormParam("param2") String para2) 
     { 
      return new MyJaxbBean(para1 , para2 , 1); 
     } 


     // use this like : 
     // http://localhost:8080/REST3/test.jsp 
     @POST 
     @Path("/somewhere") 
     @Produces("application/json") 
     public JSONObject getJson(@FormParam("para1") String para1 , 
            @FormParam("para2") String para2) throws JSONException 
     { 
      JSONObject jason = new JSONObject(); 

      // Put a simple element 
      jason.put("aircraft", "A320"); 

      // Add a JSON Object 
      JSONObject pilot = new JSONObject(); 
      pilot.put("firstName", "John"); 
      pilot.put("lastName", "Adams"); 
      jason.put("pilot", pilot); 

      // Accumulate values in an array 
      jason.accumulate("passenger", "George Washington"); 
      jason.accumulate("passenger", "Thomas Jefferson"); 

      return jason; 
     } 
} 

和客戶端:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
</head> 
<body> 
    <form action="rest/returnjson/somewhere" method="post"> 
        <p> 
          The 1st parameter is : <input type="text" name="para1" /> 
        </p> 
        <p> 
          The 2nd parameter is : <input type="text" name="para2" /> 
        </p> 
        <input type="submit" value="Jersey me !" /> 
    </form> 
</body> 
</html> 

當我提交表單,我得到這個:

HTTP Status 500 - Internal Server Error 

type Status report 

message Internal Server Error 

description The server encountered an internal error that prevented it from fulfilling this request. 

Apache Tomcat/7.0.50 

我可以看到它到達路徑,但我似乎無法找到問題的根源。

任何想法?

編輯:

Apr 15, 2014 9:30:16 AM com.sun.jersey.spi.container.ContainerResponse logException 
SEVERE: Mapped exception to response: 500 (Internal Server Error) 
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class org.json.JSONObject, and Java type class org.json.JSONObject, and MIME media type application/json was not found 
    at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1448) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class org.json.JSONObject, and Java type class org.json.JSONObject, and MIME media type application/json was not found 
    ... 27 more 

非常感謝

+1

那裏應該有更多的日誌在你的網絡服務器提到什麼錯誤。 –

+0

您的班級中可能存在重複的路徑 –

+0

@JunedAhsan:已修復,我添加了日誌.10x – ron

回答

2

你需要的球衣,json.jar添加到類路徑。

+0

完美。謝謝。 – ron

+0

怎麼樣?????????????? – nevermind

相關問題