Spring消耗休息json web服务错误

时间:2017-01-07 08:12:04

标签: java spring rest webservices-client

以下代码导致错误

public ArrayList<model.SampleObject> getObjectByNameGet(String name) {

    final String uri = "http://127.0.0.1:8080/services/example/{name}" ;


    Map<String, String> map = new HashMap<String, String>();
    map.put("name", name);


    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<SampleObject[]> responseEntity = null;
    try {
        responseEntity = restTemplate.getForEntity(uri, SampleObject[].class,map);
    } catch (HttpStatusCodeException e) {
        String errorpayload = e.getResponseBodyAsString();
        throw e;
    } catch (RestClientException e) {
        throw e;
    }

    model.SampleObject result = restTemplate.getForObject(uri, model.SampleObject.class);
    SampleObject resultOut[] = responseEntity.getBody();

    ArrayList<SampleObject> arrayList = new ArrayList<SampleObject>(Arrays.asList(resultOut));
    return arrayList;

}

在这一行:

responseEntity = restTemplate.getForEntity(uri, SampleObject[].class,map);

但是服务是实时的和可达的,它的本地: service is run

错误:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://127.0.0.1:8080/services/example/m":Permission denied: connect; nested exception is java.net.SocketException: Permission denied: connect
org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:543)
org.springframework.web.client.RestTemplate.execute(RestTemplate.java:497)
org.springframework.web.client.RestTemplate.getForEntity(RestTemplate.java:258)
code.Client.getObjectByNameGet(Client.java:32)
org.apache.jsp.index_jsp._jspService(index_jsp.java:146)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

我将-Djava.net.preferIPv4Stack = true添加到intellij VM选项中也没有运气。

错误的原因是什么? 提前谢谢

1 个答案:

答案 0 :(得分:0)

经过漫长的谷歌和研究,我找到了问题的根源。 窗口8中存在一个错误,导致java套接字无法连接到任何URL。

在Windows 7测试中没有问题。