2015-09-01 148 views
0

我想從服務器獲取數據,我需要顯示服務器證書上的這項工作,所以我有包括服務器證書,如下但是IAM得到如下錯誤:異常在線程「主」java.lang.Error:未解決的編譯問題:構造函數HttpHeaders()不可見

異常在線程 「主要」 java.lang.Error的:未解決的編譯問題:

The constructor HttpHeaders() is not visible 

The constructor HttpEntity<String>() is not visible 

我POM文件:

<properties> 
    <spring.version>4.1.0.RELEASE</spring.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 


<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.3.4</version> 
</dependency> 
<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava</artifactId> 
    <version>18.0</version> 
</dependency> 

    </dependencies> 

我的Java文件:

public static void main(String[] args) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, FileNotFoundException, IOException, KeyManagementException, UnrecoverableKeyException 
    { 

     KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); 
     keyStore.load(new FileInputStream("/Users/workspace/a/cert.cer"), 
       "password".toCharArray()); 
     SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(
       new SSLContextBuilder() 
         .loadTrustMaterial(null, new TrustSelfSignedStrategy()) 
         .loadKeyMaterial(keyStore, "changeit".toCharArray()).build()); 
     HttpClient httpClient = HttpClients.custom().setSSLSocketFactory(socketFactory).build(); 
     ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(
       httpClient); 
     RestTemplate restTemplate = new RestTemplate(requestFactory); 
     HttpHeaders headers = new HttpHeaders(); 
     headers.add("Content-Type", "application/xml"); 
     HttpEntity<String> entity = new HttpEntity<String>(); 
     ResponseEntity<String> response = restTemplate.exchange(
       "https://www.example.com", 
       HttpMethod.GET, entity, String.class); 
     System.out.println("Hello World!"); 
    } 
+0

好吧。你有編譯錯誤,你需要在運行你的代碼之前修復它們。 –

+0

我會檢查你的進口。您可能不會導入Spring的'org.springframework.http.HttpHeaders',可能是Apache的'org.apache.http.HttpHeaders',對於'HttpEntity'類似。 – Mena

+0

如果我導入它們,我在導入錯誤中發生衝突 – Labeo

回答

0

有在org.apache.http HttpHeadersHttpEntity沒有公共構造函數。所以你不能創建這些對象。 另外HttpEntity是一個接口。

也許你已經導入了錯誤的類。

相關問題