@RequestBody 를 이용하여 json 타입으로 return 시 리턴 안되는 경우
- 작성자 :
- 김*호
- 작성일 :
- 2021-05-24 17:12:11
- 조회수 :
- 5,707
- 구분 :
- 개발환경 / 3.9
- 진행상태 :
- 완료
Q
Egov 3.9 버전 사용하고 있습니다.
json으로 리턴 값을 보내기 위한 테스트 중입니다
아래 코드에서 호출하는 쪽에서 /testjson.do를 호출하면
package egovframework.example.sample.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.WebRequest;
class Bnag{
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
@Controller
public class LoingPass {
@RequestMapping(value="/testjson.do", headers={"Content-type=application/json"} )
public @ResponseBody Ret getSubmit(WebRequest request) throws Exception{
Ret ret = new Ret();
ret.setStatus("20");
return ret ;
}
}
전자정프프레임워크 샘플예제로 테스트 중에
@RequestBody로 json의 형태로 리턴값을 받으려 하는데
위 코드상의 리턴을 하고나면 리턴된 값은
"\r\n\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ko\" xml:lang=\"ko\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n<title>Error</title>\r\n</head>\r\n\r\n<body>\r\n ?먮윭媛 諛쒖깮?덉뒿?덈떎!\r\n</body>\r\n</html>"
위와 같이 리턴된 값이 확인되며 json의 값을 받을 수 없습니다.
Egov 프레임워크에서 @RquestBody를 사용하여 json으로 리턴값을 보내려면 별도의 세팅 작업이나
필요한 사항을 알려주시거나 위 코드에서 수정할 사항을 알려주시면 감사하겠습니다
참고로 pom.xml에서
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
위는 추가하였습니다
json으로 리턴 값을 보내기 위한 테스트 중입니다
아래 코드에서 호출하는 쪽에서 /testjson.do를 호출하면
package egovframework.example.sample.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.WebRequest;
class Bnag{
private String status;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
@Controller
public class LoingPass {
@RequestMapping(value="/testjson.do", headers={"Content-type=application/json"} )
public @ResponseBody Ret getSubmit(WebRequest request) throws Exception{
Ret ret = new Ret();
ret.setStatus("20");
return ret ;
}
}
전자정프프레임워크 샘플예제로 테스트 중에
@RequestBody로 json의 형태로 리턴값을 받으려 하는데
위 코드상의 리턴을 하고나면 리턴된 값은
"\r\n\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ko\" xml:lang=\"ko\">\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\r\n<title>Error</title>\r\n</head>\r\n\r\n<body>\r\n ?먮윭媛 諛쒖깮?덉뒿?덈떎!\r\n</body>\r\n</html>"
위와 같이 리턴된 값이 확인되며 json의 값을 받을 수 없습니다.
Egov 프레임워크에서 @RquestBody를 사용하여 json으로 리턴값을 보내려면 별도의 세팅 작업이나
필요한 사항을 알려주시거나 위 코드에서 수정할 사항을 알려주시면 감사하겠습니다
참고로 pom.xml에서
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
위는 추가하였습니다
환경정보
-
- OS 정보 : win10
- 표준프레임워크 버전 : 3.9
- JDK(JRE) 정보 : jdk 1.8
- WAS 정보 : 톰켓 7
- DB 정보 : 없음
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
@RequestBody를 사용하시려면
RequestMappingHandlerAdapter 빈 설정에
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</list>
</property>
와 같이 jackson 관련 설정이 정의되어 있는지 확인해 보시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
@RequestBody를 사용하시려면
RequestMappingHandlerAdapter 빈 설정에
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
</list>
</property>
와 같이 jackson 관련 설정이 정의되어 있는지 확인해 보시기 바랍니다.
감사합니다.