Note that there are some explanatory texts on larger screens.

plurals
  1. POAngularJS Client, JAX-RS Jersey Rest Service - application/json client request throwing 'Error parsing media type'
    primarykey
    data
    text
    <p>I am using the below AngularJS client code to perform a HTTP post request with JSON formatted payload to the jersey rest service</p> <pre><code>patientMgmtModule.controller('NewPatientCtrl', function NewPatientCtrl($scope, $http) { $scope.addPatient = function (){ var patientJSON = angular.toJson($scope.Patient); console.log("Patient (JSON) is ============&gt; " + patientJSON); $http({ method: 'POST', data: $scope.Patient, url:'/ManagePatient/AddPatient', headers: {'Content-Type':'application/x-www-form-urlencoded;application/json;'} }); }; </code></pre> <p>} );</p> <p>I have the following maven dependencies for Jersey:</p> <pre><code> &lt;dependency&gt; &lt;groupId&gt;org.glassfish.jersey.archetypes&lt;/groupId&gt; &lt;artifactId&gt;jersey-quickstart-webapp&lt;/artifactId&gt; &lt;version&gt;2.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.glassfish.jersey.containers&lt;/groupId&gt; &lt;artifactId&gt;jersey-container-servlet-core&lt;/artifactId&gt; &lt;version&gt;2.0&lt;/version&gt; &lt;/dependency&gt; </code></pre> <p>On the Server Side, I have</p> <pre><code>import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; import com.hms.app.ui.beans.Patient; @Path("/ManagePatient") public class PatientController { @POST @Path("/AddPatient") @Consumes({MediaType.APPLICATION_JSON}) public String addPatient(Patient patient) { System.out.println("Sarat's servlet called" ); //patient.toConsole(); System.out.println("Done Calling Patient To Console"); return "Done Calling Patient To Console"; } } </code></pre> <p>When I submit the form on the client side, I see the below error in the chrome console -</p> <pre><code>POST http://localhost:8080/HMS_Web/services/ManagePatient/AddPatient 500 (Internal Server Error) angular.min.js:99 </code></pre> <p>and on the server end, I see (high level detail 1):</p> <pre><code>SEVERE: Servlet.service() for servlet [Jersey REST Service] in context with path [/HMS_Web] threw exception org.glassfish.jersey.message.internal.HeaderValueException: Unable to parse "Content-Type" header value: "application/x-www-form-urlencoded;application/json;" </code></pre> <p>and the last stack trace has this:</p> <pre><code>Caused by: java.text.ParseException: Expected separator '=' instead of '/' </code></pre> <p>Detailed stack trace: (</p> <pre><code>Aug 01, 2013 9:28:18 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [Jersey REST Service] in context with path [/HMS_Web] threw exception org.glassfish.jersey.message.internal.HeaderValueException: Unable to parse "Content-Type" header value: "application/x-www-form-urlencoded;application/json;" at org.glassfish.jersey.message.internal.InboundMessageContext.exception(InboundMessageContext.java:318) at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:313) at org.glassfish.jersey.message.internal.InboundMessageContext.getMediaType(InboundMessageContext.java:427) at org.glassfish.jersey.servlet.WebComponent.filterFormParameters(WebComponent.java:482) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:303) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 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:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: javax.ws.rs.ProcessingException: java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded;application/json;' at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:433) at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:427) at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:311) ... 22 more Caused by: java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded;application/json;' at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:89) at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:59) at javax.ws.rs.core.MediaType.valueOf(MediaType.java:179) at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:431) ... 24 more Caused by: java.text.ParseException: Expected separator '=' instead of '/' at org.glassfish.jersey.message.internal.HttpHeaderReader.nextSeparator(HttpHeaderReader.java:115) at org.glassfish.jersey.message.internal.HttpHeaderReader.readParameters(HttpHeaderReader.java:261) at org.glassfish.jersey.message.internal.HttpHeaderReader.readParameters(HttpHeaderReader.java:242) at org.glassfish.jersey.message.internal.MediaTypeProvider.valueOf(MediaTypeProvider.java:107) at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:87) ... 27 more Aug 01, 2013 9:29:00 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [Jersey REST Service] in context with path [/HMS_Web] threw exception org.glassfish.jersey.message.internal.HeaderValueException: Unable to parse "Content-Type" header value: "application/x-www-form-urlencoded;application/json;" at org.glassfish.jersey.message.internal.InboundMessageContext.exception(InboundMessageContext.java:318) at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:313) at org.glassfish.jersey.message.internal.InboundMessageContext.getMediaType(InboundMessageContext.java:427) at org.glassfish.jersey.servlet.WebComponent.filterFormParameters(WebComponent.java:482) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:303) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:372) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:335) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:218) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 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:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: javax.ws.rs.ProcessingException: java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded;application/json;' at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:433) at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:427) at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:311) ... 22 more Caused by: java.lang.IllegalArgumentException: Error parsing media type 'application/x-www-form-urlencoded;application/json;' at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:89) at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:59) at javax.ws.rs.core.MediaType.valueOf(MediaType.java:179) at org.glassfish.jersey.message.internal.InboundMessageContext$5.apply(InboundMessageContext.java:431) ... 24 more Caused by: java.text.ParseException: Expected separator '=' instead of '/' at org.glassfish.jersey.message.internal.HttpHeaderReader.nextSeparator(HttpHeaderReader.java:115) at org.glassfish.jersey.message.internal.HttpHeaderReader.readParameters(HttpHeaderReader.java:261) at org.glassfish.jersey.message.internal.HttpHeaderReader.readParameters(HttpHeaderReader.java:242) at org.glassfish.jersey.message.internal.MediaTypeProvider.valueOf(MediaTypeProvider.java:107) at org.glassfish.jersey.message.internal.MediaTypeProvider.fromString(MediaTypeProvider.java:87) ... 27 more </code></pre> <p>After implementing LoggingFilter - I see that the server is responding with HTTP 415.</p> <pre><code>Aug 04, 2013 10:28:25 AM org.glassfish.jersey.filter.LoggingFilter log INFO: 2 * LoggingFilter - Request received on thread tomcat-http--11 2 &gt; POST http://localhost:8080/HMS_Web/services/ManagePatient/AddPatient 2 &gt; host: localhost:8080 2 &gt; connection: keep-alive 2 &gt; content-length: 341 2 &gt; accept: application/json, text/plain, */* 2 &gt; origin: http://localhost:8080 2 &gt; x-requested-with: XMLHttpRequest 2 &gt; user-agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36 2 &gt; content-type: application/json 2 &gt; dnt: 1 2 &gt; referer: http://localhost:8080/HMS_Web/views/Landing.html 2 &gt; accept-encoding: gzip,deflate,sdch 2 &gt; accept-language: en-US,en;q=0.8 Aug 04, 2013 10:28:25 AM org.glassfish.jersey.filter.LoggingFilter log INFO: 2 * LoggingFilter - Response received on thread tomcat-http--11 2 &lt; 415 </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload