Мой сервисный код реализован с использованием Resteasy
@GET
@Path("/ad-details/{query}")
@Produces("application/json")
public String getAdDetails(@PathParam("query") String id)
{
//Validator v = ESAPI.encoder().encodeForHTML(id);
//String id1 = ;
//System.out.println(ESAPI.encoder().encodeForHTML(ESAPI.encoder().canonicalize(id1)));
String adDetailsResult = "";
System.out.println("reached Service");
AdServiceProvider ad = new AdServiceProviderImpl();
AdDetails details = ad.getAdDetailsById(Long.parseLong(id.trim()));
adDetailsResult = gson.toJson(details);
//System.out.println(adDetailsResult);
//adDetailsResult = ESAPI.encoder().encodeForHTML(ESAPI.encoder().canonicalize(adDetailsResult));
System.out.println(adDetailsResult);
return adDetailsResult;
}
и мой клиентский код, использующий этот сервис, использует jersey api
и код, как указано ниже.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("reached servlet");
response.setContentType("application/json");
String adId = request.getParameter("adId");
System.out.println(adId);
Client client = Client.create();
WebResource wr = client.resource("http://localhost:8080/com.pandora.services/service");
String adDetailsResult = wr.path("ad-details").path(adId).get(String.class);
PrintWriter out = response.getWriter();
out.print(adDetailsResult);
}'`
однако, когда я звоню, я получаю следующую ошибку
WARN org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher Не удалось проанализировать запрос.
java.lang.IllegalArgumentException: Ошибка при синтаксическом анализе типа носителя '*; д = 0,2'
на com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString (MediaTypeProvider.java:80)
в com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString (MediaTypeProvider.java:53)
в javax.ws.rs.core.MediaType.valueOf (MediaType.java:173)
в org.jboss.resteasy.util.MediaTypeHelper.parseHeader (MediaTypeHelper.java:204)
в org.jboss.resteasy.plugins.server.servlet.ServletUtil.extractAccepts (ServletUtil.java:119)
в org.jboss.resteasy.plugins.server.servlet.ServletUtil.extractHttpHeaders (ServletUtil.java:82)
в org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service (ServletContainerDispatcher.java:186)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:55)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:50)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588)
в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489)
at java.lang.Thread.run (неизвестный источник)
Вызывается: java.text.ParseException: ожидаемый разделитель '/' вместо ';'
в com.sun.jersey.core.header.reader.HttpHeaderReader.nextSeparator (HttpHeaderReader.java:117)
в com.sun.jersey.core.impl.provider.header.MediaTypeProvider.valueOf (MediaTypeProvider.java:91)
на com.sun.jersey.core.impl.provider.header.MediaTypeProvider.fromString (MediaTypeProvider.java:78)
... еще 21
10 мая 2011 г. 7:14:50 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service () для сервлета Resteasy бросил исключение
java.lang.NullPointerException
в org.jboss.resteasy.plugins.server.servlet.HttpServletInputMessage. (HttpServletInputMessage.java:60)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.createHttpRequest (HttpServletDispatcher.java:71)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.createResteasyHttpRequest (HttpServletDispatcher.java:60)
в org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service (ServletContainerDispatcher.java:197)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:55)
в org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service (HttpServletDispatcher.java:50)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290)в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588)
в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489)
at java.lang.Thread.run (неизвестный источник)
10 мая 2011 г. 7:14:50 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service () для сервлета AdDetailsServlet сгенерировал исключение
com.sun.jersey.api.client.UniformInterfaceException: GET http://localhost:8080/com.pandora.services/service/ad-details/1 вернул статус ответа 500
в com.sun.jersey.api.client.WebResource.handle (WebResource.java:565)
на com.sun.jersey.api.client.WebResource.get (WebResource.java:182)
на com.pandora.client.servlets.AdDetailsServlet.doPost (AdDetailsServlet.java:48)
на com.pandora.client.servlets.AdDetailsServlet.doGet (AdDetailsServlet.java:34)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:707)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:820)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:290)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:857)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588)
в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489)
at java.lang.Thread.run (неизвестный источник)
где я совершаю ошибку ??
Спасибо