2017-07-19 5 views
0

Ich erhalte den folgenden EOF-Fehler in unserem Service. Es ist eine Spring-Boot-Anwendung als Krieg in Weblogic-Server eingesetzt.EOF-Ausnahme mit Spring RestTemplate im Weblogic-Container

org.springframework.web.client.ResourceAccessException: I/O error on PUT request for "http://*****/update: Response had end of stream after 0 bytes; nested exception is java.io.EOFException: Response had end of stream after 0 bytes 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:633) 
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:580) 
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:498) 
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) 
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) 
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) 
at org.springframework.aop.interceptor.AsyncExecutionInterceptor$1.call(AsyncExecutionInterceptor.java:115) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at java.lang.Thread.run(Thread.java:745) 
Caused by: java.io.EOFException: Response had end of stream after 0 bytes 
at weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:312) 
at weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:232) 
at weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:554) 
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:688) 
at weblogic.net.http.SOAPHttpURLConnection.getInputStream(SOAPHttpURLConnection.java:41) 
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:1545) 
at org.springframework.http.client.SimpleClientHttpResponse.getRawStatusCode(SimpleClientHttpResponse.java:52) 
at org.springframework.http.client.AbstractClientHttpResponse.getStatusCode(AbstractClientHttpResponse.java:33) 
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:655) 
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:620) 
... 10 more 

Diese blo g beschreibt genau, was ich sehe. aber ich benutze RestTemplate, das die Standard-HttpClientFactory und nicht Weblogic sollte. Kann jemand erklären, warum und was ich tun sollte?

Dank

Antwort

0

Ich veröffentliche die Antwort, da es andere helfen, wenn sie mit demselben Problem konfrontiert.

durch explizite Einstellung HttpClientFactory auf dem RestTemplate, konnte ich diesen Fehler loswerden. Ich dachte standardmäßig, RestTemplateHttpClient verwenden. Ich kann nicht herausfinden, warum ich das einstellen musste. aber das half, zu lösen.

@Bean 
public RestTemplate restTemplate(){ 
    HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(); 
    RestTemplate template = new RestTemplate(factory); 
    template.setErrorHandler(new RestResponseHandler()); 
    return template; 
    } 

Bevor ich hatte

@Bean 
    public RestTemplate restTemplate(){ 
    return new RestTemplate(); 
    } 
Verwandte Themen