0

我正在尝试从服务器获取数据,并且我需要为此工作显示服务器证书,因此我已包含服务器证书,如下所示,但出现以下错误:

线程“main”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!" );
    }
4

1 回答 1

0

org.apache.httpHttpHeaders中没有公共构造函数。HttpEntity所以你不能创建这些对象。也是HttpEntity一个接口。

也许你导入了错误的类。

于 2015-09-01T13:14:23.397 回答