Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ArrayStoreException使用apache httpasyncclient进行post_Java_Http Post_Apache Httpasyncclient - Fatal编程技术网

Java ArrayStoreException使用apache httpasyncclient进行post

Java ArrayStoreException使用apache httpasyncclient进行post,java,http-post,apache-httpasyncclient,Java,Http Post,Apache Httpasyncclient,实际上,客户端驻留在Tomcat8080中,RESTAPI驻留在9090中。当URL移动到更高的环境时,它的URL将不同。我没有看到使用httpasyncclient调用REST API。我从Apache网站复制了代码 不确定如何使呼叫成功,即使我收到异常响应 CloseableHttpAsyncClient client = HttpAsyncClients.createDefault(); try { client.start(); JsonObje

实际上,客户端驻留在Tomcat8080中,RESTAPI驻留在9090中。当URL移动到更高的环境时,它的URL将不同。我没有看到使用httpasyncclient调用REST API。我从Apache网站复制了代码

不确定如何使呼叫成功,即使我收到异常响应

CloseableHttpAsyncClient client = HttpAsyncClients.createDefault();
    try {
        client.start();
        JsonObject obj = new JsonObject();
        obj.addProperty("username", "username");
        obj.addProperty("password", "password");



        String serverURL = "http://localhost:9090/project/api";

        HttpPost postRequest = new HttpPost(serverURL);
        StringEntity params = new StringEntity(obj.toString(), "UTF-8");
        params.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "x-www-form-urlencoded"));
        postRequest.setEntity(params);

        Future<HttpResponse> future = client.execute(postRequest, null);
        HttpResponse response = future.get();


    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    } finally {
        try {
            client.close();
        } catch (IOException e) {
            e.printStackTrace();
        }


    }    
javadocs说

打开声明java.util.concurrent.ExecutionException异常 尝试检索已中止的任务的结果时引发 通过抛出异常。可以使用 getCause()方法


最可能的原因-httpclient版本中的冲突。F.e.项目依赖性包括
httpclient
httpasyncclient
httpasyncclient
对另一版本的httpclient具有可传递的依赖关系。因此,项目依赖项有两个不兼容版本的
httpclient
。这里描述了其中一个案例,并进行了详细解释:

最可能的原因是
httpclient
版本中的冲突。F.e.项目依赖性包括
httpclient
httpasyncclient
httpasyncclient
对另一版本的httpclient具有可传递的依赖关系。因此,项目依赖项有两个不兼容版本的
httpclient
。下面描述了其中一种情况,并对其进行了详细说明:

Caused by: java.lang.ArrayStoreException: org.apache.http.impl.cookie.RFC2965VersionAttributeHandler
    at org.apache.http.impl.cookie.DefaultCookieSpecProvider.create(DefaultCookieSpecProvider.java:93)
    at org.apache.http.client.protocol.RequestAddCookies.process(RequestAddCookies.java:152)
    at org.apache.http.protocol.ImmutableHttpProcessor.process(ImmutableHttpProcessor.java:133)
    at org.apache.http.impl.nio.client.MainClientExec.prepareRequest(MainClientExec.java:520)
    at org.apache.http.impl.nio.client.MainClientExec.prepare(MainClientExec.java:146)
    at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:124)
    at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:74)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:107)
    at org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:91)