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!");
}
好吧。你有編譯錯誤,你需要在運行你的代碼之前修復它們。 –
我會檢查你的進口。您可能不會導入Spring的'org.springframework.http.HttpHeaders',可能是Apache的'org.apache.http.HttpHeaders',對於'HttpEntity'類似。 – Mena
如果我導入它們,我在導入錯誤中發生衝突 – Labeo