2013-04-26 1 views
0

자바 클라이언트에서 HttpURLConnection을 사용하여 json으로 입력을 보내려는 요청은 Spring MVC 라이브러리 jacksonhaus에 의해 처리되어 출력에 응답한다. json입력을 json으로 보내고 java를 사용하여 출력을 json으로 받는다. HttpURLConnection과 Spring MVC 컨트롤러

URL url = new URL("http://www.test.com/SpringMVC/rest/service/getEmpDetails"); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setDoOutput(true); 
conn.setRequestMethod("POST"); 
conn.setRequestProperty("Content-Type", "application/json"); 

String input = "{\"name\":\"emp1\",\"add\":\"emp2\"}"; 

OutputStream os = conn.getOutputStream(); 
os.write(input.getBytes()); 
os.flush(); 

if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) { 
    throw new RuntimeException("Failed : HTTP error code : " 
     + conn.getResponseCode()); 
} 

으로 나는

HTTP 오류 코드를 얻고이 코드를 사용하는 경우 : 500

봄 MVC에서 입력 요청에 model 속성을 사용하고 있습니다. 아무도 이것에 나를 도울 수 있습니까.

답변

0

컨트롤러 코드가 컨트롤러에서 http_created을 전송하고 있는지 확실하지 않습니까? HttpURLConnection.HTTP_OK을 찾고 계십니까?

코드가 당신에게

컨트롤러 코드 도움이 될 수 아래 :

@RequestMapping(value="/jsonconsumer", method=RequestMethod.POST, consumes=MediaType.APPLICATION_JSON_VALUE) 
public @ResponseBody String consumer(@RequestBody JavaBean javaBean) { 
    return "created"; 
} 

자바 빈즈 코드 :

@XmlRootElement 
public class JavaBean { 

    private String name = ""; 
    private String add = ""; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getAdd() { 
     return add; 
    } 

    public void setAdd(String add) { 
     this.add = add; 
    } 

    @Override 
    public String toString() { 
     return "JavaBean {name=[" + name + "], add=[" + add + "]}"; 
    } 
} 
+0

'@RequestMapping (방법 = RequestMethod.POST, 값 = "을/getEmpDetails ") \t public @ResponseBody String validateRequest (@Mod elAttribute ("resource") EmpBean empBean) { \t \t \t \t return "true"; \t}'이것은 내 컨트롤러 코드입니다 – premeclat

+0

컨트롤러를 복사했는데 로그에 다음과 같이 표시됩니다. <<<<<<<<< < >>>>>>>>>>>>> EmpBean {name = [emp], add = [emp1]} RequestResponseBodyMethodProcessor - "텍스트/html "[[email protected]c21b]을 사용합니다. 실행중인 Webserver와 관련이 있습니까, Tomcat 7을 사용합니다. 또한 HTTP_CREATED가 아닌 HttpURLConnection.HTTP_OK를 기대해야합니다. – apurvc

관련 문제