JAXRS を使用して REST API を呼び出すと、EOFException が発生します。
スタンドアロンのJavaアプリケーションと同じように実行すると。正常に動作しており、応答が得られています。しかし、Weblogic 10.3 で実行すると同じように、EOFException が発生します。
コードスニペットの下。
JAXRSClientFactoryBean jaxRSClientFactoryBean = new JAXRSClientFactoryBean(); jaxRSClientFactoryBean.setAddress( "https://api.testing.net:443/api/v1/Account?AccountId=9"); System.out.println(" URL: " + jaxRSClientFactoryBean.getAddress()); WebClient restClient = jaxRSClientFactoryBean.createWebClient(); restClient.accept(MediaType.APPLICATION_JSON); restClient.type(MediaType.APPLICATION_JSON_TYPE); restClient.header("認可", "基本xxxxxxx"); HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); httpClientPolicy.setConnectionTimeout(30000); httpClientPolicy.setReceiveTimeout(30000); httpClientPolicy.setConnection(ConnectionType.CLOSE); httpClientPolicy.setAllowChunking(false); http.setClient(httpClientPolicy); 文字列 responseStr = restClient.get(String.class); System.out.println("応答を受信しました"+responseStr);
Weblogicで同じことを実行すると。以下の例外が発生しています。
原因: java.io.EOFException: https://api.testing.net:443/api/v1/Account?AccountId=9 を呼び出す EOFException: 応答にデータが含まれていません sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:39) で sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) で java.lang.reflect.Constructor.newInstance (Constructor.java:513) で org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException (HTTPConduit.java:1336) で org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close (HTTPConduit.java:1320) で org.apache.cxf.transport.AbstractConduit.close (AbstractConduit.java:56) で org.apache.cxf.transport.http.HTTPConduit.close (HTTPConduit.java:622) で org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage (MessageSenderInterceptor.java:62) で ... 147件以上 原因: java.io.EOFException: 応答にデータが含まれていませんでした weblogic.net.http.MessageHeader.isHTTP(MessageHeader.java:227) で weblogic.net.http.MessageHeader.parseHeader(MessageHeader.java:148) で weblogic.net.http.HttpClient.parseHTTP(HttpClient.java:468) で weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:377) で weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37) で weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:965) で org.apache.cxf.transport.http.URLConnectionHTTPConduit$URLConnectionWrappedOutputStream.getResponseCode(URLConnectionHTTPConduit.java:248) で org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal (HTTPConduit.java:1515) で org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse (HTTPConduit.java:1488) で org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close (HTTPConduit.java:1307) で
任意のポインター。
ありがとう。