전자정부프레임워크3.1과 Miplatform 과 연동
- 작성자 :
- 공*기
- 작성일 :
- 2015-06-11 14:39:24
- 조회수 :
- 1,319
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
전자정부프레임워크3.1과 Miplatform 과 연동할려고
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:ui_adaptor
에 있는 마이플랫폼_연동_샘플_설명서포함_.zip 예제를 가지고 개발 하고 있습니다.
그런데 예제에 있는
@RequestMapping(value = "/miplatform/egovSampleDetailDS.do")
public ModelAndView detailSampleList4MiByDataset(Object vo, Model model)
throws Exception {
ModelAndView mav = new ModelAndView("miplatformViewByVO");
try
{
mav.addObject("MiDTO", selectSample((SampleVO)vo, new SampleDefaultVO()));
mav.addObject("MiResultCode", "0");
mav.addObject("MiResultMsg", "success");
} catch ( Exception e )
{
e.printStackTrace();
mav.addObject("MiResultCode", "-1");
mav.addObject("MiResultMsg", e.toString());
}
return mav;
}
를 실행 시 (SampleVO)vo 이 부분에서 java.lang.ClassCastException 에러가 발생 됩니다
제 느낌에는 customArgumentResolvers를 타지 않는가 생각 됩니다
단순히 조회하는 부분은 잘 됩니다
왜 에러가 나는지 어떻게 해결해야 하는지 sample을 부탁 드립니다
그리고 context-common.xml 파일을 첨부 합니다
감사합니다
전자정부프레임워크3.1과 Miplatform 과 연동할려고
http://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:ptl:ui_adaptor
에 있는 마이플랫폼_연동_샘플_설명서포함_.zip 예제를 가지고 개발 하고 있습니다.
그런데 예제에 있는
@RequestMapping(value = "/miplatform/egovSampleDetailDS.do")
public ModelAndView detailSampleList4MiByDataset(Object vo, Model model)
throws Exception {
ModelAndView mav = new ModelAndView("miplatformViewByVO");
try
{
mav.addObject("MiDTO", selectSample((SampleVO)vo, new SampleDefaultVO()));
mav.addObject("MiResultCode", "0");
mav.addObject("MiResultMsg", "success");
} catch ( Exception e )
{
e.printStackTrace();
mav.addObject("MiResultCode", "-1");
mav.addObject("MiResultMsg", e.toString());
}
return mav;
}
를 실행 시 (SampleVO)vo 이 부분에서 java.lang.ClassCastException 에러가 발생 됩니다
제 느낌에는 customArgumentResolvers를 타지 않는가 생각 됩니다
단순히 조회하는 부분은 잘 됩니다
왜 에러가 나는지 어떻게 해결해야 하는지 sample을 부탁 드립니다
그리고 context-common.xml 파일을 첨부 합니다
감사합니다
A
공황기님 안녕하세요.
표준프레임워크센터입니다.
public ModelAndView detailSampleList4MiByDataset(Object vo, Model model)
메소드의 Object vo 를 처리하는 부분을 egovframework.rte.cmmn.ria.support.MiAdaptorVoImpl.converte4In(PlatformRequest platformRequest, HttpServletRequest request) 메소드에서 처리를 합니다.
소스를 살펴 보면,
Dataset ds_voInfo = list.get("ds_voInfo");
String voClass = ds_voInfo.getColumnAsString(0,"voClass");
Dataset ds = list.get("ds_input");
System.out.println("voClass ==> ["+voClass+"]");
Class<?> cls = Class.forName(voClass);
vo = cls.newInstance();
위에 보는 바와 같이 화면에서 ds_voInfo 데이터셋의 "voClass" 컬럼 데이터를 이용해서 객체를 생성하여 반환하고 있습니다.
여기에서 화면에서 설정된 객체 정보가 SampleVO 가 아닌 잘못된 정보가 들어와서 실제 생성된 객체와
casting 하는 객체가 달라 exception 이 발생된 듯 합니다.
체크사항
- MiPlatform 화면소스에서 Transaction 호출 시 서버로 전송하는 ds_voInfo 데이터셋의 voClass 정보와
서버에서 casting 하고자 하는 객체 정보가 동일한지 한번 체크가 필요할 듯 합니다.
화면 소스를 확인바랍니다.
이상입니다
표준프레임워크센터입니다.
public ModelAndView detailSampleList4MiByDataset(Object vo, Model model)
메소드의 Object vo 를 처리하는 부분을 egovframework.rte.cmmn.ria.support.MiAdaptorVoImpl.converte4In(PlatformRequest platformRequest, HttpServletRequest request) 메소드에서 처리를 합니다.
소스를 살펴 보면,
Dataset ds_voInfo = list.get("ds_voInfo");
String voClass = ds_voInfo.getColumnAsString(0,"voClass");
Dataset ds = list.get("ds_input");
System.out.println("voClass ==> ["+voClass+"]");
Class<?> cls = Class.forName(voClass);
vo = cls.newInstance();
위에 보는 바와 같이 화면에서 ds_voInfo 데이터셋의 "voClass" 컬럼 데이터를 이용해서 객체를 생성하여 반환하고 있습니다.
여기에서 화면에서 설정된 객체 정보가 SampleVO 가 아닌 잘못된 정보가 들어와서 실제 생성된 객체와
casting 하는 객체가 달라 exception 이 발생된 듯 합니다.
체크사항
- MiPlatform 화면소스에서 Transaction 호출 시 서버로 전송하는 ds_voInfo 데이터셋의 voClass 정보와
서버에서 casting 하고자 하는 객체 정보가 동일한지 한번 체크가 필요할 듯 합니다.
화면 소스를 확인바랍니다.
이상입니다