title: Consuming Restful web service using jQuery client
body: <p>I am trying to learn the restful web service Post logic.
  In order to test the Post logic i am using jQuery to invoke the restful API.</p>
  
  <p>The code i used for testing mentioned below.
  Restful API code.</p>
  
  <pre><code>package com.crunchify.tutorials;
  
  import javax.ws.rs.Consumes;
  import javax.ws.rs.POST;
  import javax.ws.rs.Path;
  import javax.ws.rs.Produces;
  import javax.ws.rs.core.MediaType;
  
  import org.codehaus.jettison.json.JSONObject;
  
      @Path("/")
      public class CrunchifyRESTService {
  
  
      @POST
      @Path("/verify")
  
      @Consumes(MediaType.APPLICATION_JSON)
      @Produces(MediaType.APPLICATION_JSON)
      public RestBean MsgRsc(RestBean message) {
  
          System.out.println(message.id1);
  
          return message;
  
      }
  
  RestBean class.
  
      package com.crunchify.tutorials;
  
      import org.codehaus.jackson.annotate.JsonProperty;
  
      public class RestBean {
      @JsonProperty("param1")
      int id1;
      @JsonProperty("param2")
      int id2;
      }
  </code></pre>
  
  <p>Jquery client.</p>
  
  <pre><code>    &lt;html&gt;
      &lt;head&gt;
      &lt;script type="text/javascript" src="js/jquery.1.7.2.js"&gt;&lt;/script&gt;
      &lt;script type="text/javascript" src="js/jquery.jsonview.js"&gt;&lt;/script&gt;
      &lt;link rel="stylesheet" href="css/jquery.jsonview.css" type="text/css"/&gt;
      &lt;script type="text/javascript"&gt;
            function testWebservice(){
              var url = "http://localhost:8081/TestPost/verify";
              var params = {param1:1,param2:2};
              var jsonParam = JSON.stringify( params );
  
              $.ajax( {
                  type: "POST",
                  url: url,
                  dataType: "json",
                  contentType: "application/json",
                  success: function(response){
                      $("#responseContent").JSONView(response);
                      console.log("Success");
                  },
                  error: function( jqXHR, textStatus, errorThrown ){
                    console.log("Failed");
                  }
          } );
            }      
      &lt;/script&gt;
  
      &lt;/head&gt;
      &lt;div style="margin:20px 0 0 20px;"&gt;
      &lt;input type="button" value="Test" id="a2" onclick="testWebservice()"/&gt;
      &lt;/div&gt;
      &lt;div id="responseContent" style="border: 1px solid #ccc;height:  500px;overflow: scroll;width: 500px; margin: 20px 0 0 20px;"&gt;
  &lt;/div&gt;
  &lt;/html&gt;
  </code></pre>
  
  <p>When i test using the jQuery client, i am receiving below error.Not sure how to resolve it. </p>
  
  <pre><code> Apr 27, 2017 11:58:01 AM com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException
  SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container
  java.io.EOFException: No content to map to Object due to end of input
      at org.codehaus.jackson.map.ObjectMapper._initForReading(ObjectMapper.java:2766)
      at org.codehaus.jackson.map.ObjectMapper._readValue(ObjectMapper.java:2682)
      at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1308)
      at org.codehaus.jackson.jaxrs.JacksonJsonProvider.readFrom(JacksonJsonProvider.java:419)
      at com.sun.jersey.spi.container.ContainerRequest.getEntity(ContainerRequest.java:490)
      at com.sun.jersey.server.impl.model.method.dispatch.EntityParamDispatchProvider$EntityInjectable.getValue(EntityParamDispatchProvider.java:123)
      at com.sun.jersey.server.impl.inject.InjectableValuesProvider.getInjectableValues(InjectableValuesProvider.java:86)
      at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$EntityParamInInvoker.getParams(AbstractResourceMethodDispatchProvider.java:153)
      at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:183)
      at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
      at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
      at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
      at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
      at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1542)
      at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1473)
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1419)
      at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1409)
      at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:409)
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:558)
      at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:733)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
      at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:94)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
      at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:620)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:502)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1104)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1519)
      at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1475)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      at java.lang.Thread.run(Unknown Source)
  </code></pre>