2016-08-26 3 views
0

私はxmlリクエストを投稿して応答を取得するためにspringrestテンプレートを使用していますが、Tomcatが完全に実行されていることを確認しましたが、デプロイ後にその例外が表示されました。WASでhttpcomponenetsエラーが発生しました

java.lang.NoSuchFieldError: INSTANCE 

at java.lang.J9VMInternals.initialize(J9VMInternals.java:175) 
Caused by: java.lang.NoSuchFieldError: org/apache/http/conn/ssl/AllowAllHostnameVerifier.INSTANCE 
Caused by: java.lang.NoClassDefFoundError: org.apache.http.conn.ssl.SSLConnectionSocketFactory (initialization failure) 

私はjarの互換性がないことを調べました。同じバージョンの異なるバージョンはありません。私のコードを調べるとエラーが出ます。

HttpClientBuilder clientBuilder=HttpClientBuilder.create(); 
     HttpClient httpClient=clientBuilder.setProxy(myProxy).setDefaultCredentialsProvider(credentialsProvider).disableCookieManagement().build(); 
     HttpComponentsClientHttpRequestFactory httpComponentFactory=new HttpComponentsClientHttpRequestFactory(); 

私はhttpcomponentバージョン4.4を使用しています。この中で私を助けてください

+0

おそらく、WebSphereクライアントと競合するhttpclientライブラリがバンドルされています。この投稿を参照してくださいhttp://stackoverflow.com/a/28010436/3701228 – Gas

+0

私はそれが動作しなかったことを試みた – LowCool

答えて

0

私は適切な解決策を得ることができませんでした。以前は、httpComponentsバージョン4.4を使用しました。それは、問題に言及している問題を作成していました.HTMLComponentsバージョン3.1を使用した後、resttemplateと互換性がありません。私たちもそれを削除します。最終的にhttpClientバージョン3.1でコードを書いたのです

      AuthScope auth=new AuthScope(testAuthData.getHost(),Integer.parseInt(testAuthData.getPort())); 



          ReportData report=new ReportData(); 

          report.setEndPoint(input.getEndPoint()); 
          report.setRequest(xml); 

                  Credentials defaultProxyCreds = new UsernamePasswordCredentials(
                  testAuthData.getUsername(), testAuthData.getPassword()); 

          HttpClient httpClient = new HttpClient(); 

          httpClient.getHostConfiguration().setProxy(testAuthData.getHost(),Integer.parseInt(testAuthData.getPort())); 
          httpClient.getState().setProxyCredentials(auth, 
                  defaultProxyCreds); 








          PostMethod post = new PostMethod(input.getEndPoint()); 

               post.addRequestHeader("header1", "header1Value"); 
                         post.setRequestEntity(new StringRequestEntity(xml, "application/xml", null)); 
          int responseCode = httpClient.executeMethod(post); 
          //httpClient.ex 
      byte[] resp=post.getResponseBody(); 

      String s = new String(resp); 
      System.out.println("response:"+s); 
      report.setResponse(s); 
    System.out.println("responseCode:"+responseCode); 
Header header= post.getResponseHeader("header1"); 
関連する問題