jeudi 9 avril 2015

Spring RestTemplate post 500 internal server exceotion

I am getting below exception When I am hitting url.



org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:537)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:493)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:459)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:408)
at com.capitalone.dms.gumbo.web.service.impl.WCSRestClientImpl.execute(WCSRestClientImpl.java:42)
at com.capitalone.dms.gumbo.web.service.impl.HomeServiceImpl.getCustomerResponse(HomeServiceImpl.java:65)
at com.capitalone.dms.gumbo.web.controller.HomeController.getCustomerMessageResponse(HomeController.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
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 com.capitalone.epf.context.filters.EPFContextServletFilter.doFilter(EPFContextServletFilter.java:76)
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:99)
at com.capitalone.upf.openupf.security.authentication.valve.UpfRequestContextThreadLocalValve.invoke(UpfRequestContextThreadLocalValve.java:80)
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:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)


I am written below code Using spring with Rest Template



String url = "https://<url>";
HttpHeaders header = new HttpHeaders();
header.set("Api-Key", "RTM");
header.set("Accept", "application/json;v=3");
header.setContentType(MediaType.APPLICATION_JSON);
Gson gson = new Gson();
messageRequest = gson.toJson(messageNotification);
HttpEntity<?> request = new HttpEntity<Object>(messageRequest, header);
Map<String, String> urlVariables = new HashMap<String, String>();

restTemplate.setRequestFactory(new MyBasicAuthentication());
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, request, String.class,
urlVariables);


For host verification I written below code



public class MyBasicAuthentication extends SimpleClientHttpRequestFactory {

private static class MyHostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String urlHostName, SSLSession session) {
return true;
}
}

@Override
protected void prepareConnection(HttpURLConnection connection, String httpMethod) throws IOException {


if (connection instanceof HttpsURLConnection) {
((HttpsURLConnection) connection).setHostnameVerifier(new MyHostnameVerifier());
}
super.prepareConnection(connection, httpMethod);
}


Any one can please help me hoe to resolve this issue.


Aucun commentaire:

Enregistrer un commentaire