2017-05-09 1 views
0

Json을 서버에 게시하고 구현할 restTemplate을 사용하는 Json 결과를 가져와야합니다. 하지만 문제는 항상 java.net.UnknownHostException 오류가 발생한다는 것입니다. 컨트롤러 :restTemplate을 통한 메소드 게시, 오류 java.net.UnknownHostException

@RequestMapping(value = "/test") 
public String test(HttpServletRequest request, HttpServletResponse response){ 
    String user=request.getParameter("txtUser"); 
    HttpSession session = request.getSession(); 
    session.setAttribute("result",accountService.findFarmsByUser(user)); 
    return "test"; 
} 

TEST.JSP :

<form action="test"> 
    <input type="text" value="insert search" name="txtUser"> 
    <input type="submit" value="submit" name="btnSubmit"> 
    <input type="text" value="" name="result"> 
</form> 

서비스 : 나는 XML에서 포트 및 호스트를 config (설정)하고있어 .

//create request json 
    JSONObject json = new JSONObject().put(
      "input", 
      new JSONObject().put(
        "username", 
        "Administrator")); 

    // set headers 
    HttpHeaders headers = new HttpHeaders(); 
    headers.setContentType(MediaType.APPLICATION_JSON); 
    HttpEntity<String> entity = new HttpEntity<String>(json.toString(), headers); 
    headers.set(proxyHost,Host); 
    headers.set(proxyPort,Port); 

    ResponseEntity<String> loginResponse = restTemplate 
      .exchange(url, HttpMethod.POST, entity, String.class); 
    logger.info("reutrn data: {}",loginResponse); 

아무 것도 없습니까? ??. 그것은 우편 배달부와 잘 작동합니다. 나는 회사에서 일하고 있으므로 헤더와 헤더를 설정해야합니다.

오류 :

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://{myserver:port}/Thingworx/Things/{...}/Services/findUser": 
{myserver}; nested exception is java.net.UnknownHostException: {myserver} 
     at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:607) 
     at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557) 
     at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:475) 
     at spring.web.services.impl.AccountSerivceImpl.findUser(AccountSerivceImpl.java:115) 
     at spring.web.controller.PageController.test(PageController.java:89) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method).... 
+0

같은 대답을 얻었습니까? –

답변

0

기업의 프록시 될 수 있습니다. 스프링 설정에서 정의 할 수 있습니다.

@Bean 
    public RestTemplate restTemplate(RestTemplateBuilder builder) { 

     SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); 
     Proxy proxy = new Proxy(Type.HTTP, new InetSocketAddress("clientproxy.corp.url", 8080)); 
     requestFactory.setProxy(proxy); 
     return builder.requestFactory(requestFactory).setConnectTimeout(5000).setReadTimeout(5000).build(); 
    } 
관련 문제