XMLGregorianCalendars에 대한 사용자 정의 변환기를 등록하여 WS (XMLGregorianCalendar 필드 사용)에서 수신 한 POJO에서 내 모델 (Date 객체)으로 변환하려고합니다.사용자 정의 XMLGregorianCalendar를 BeanUtils로 날짜로 변환
속성을 XMLGregorianCalendar.class로 처리하려고 등록했지만 익명 클래스 인 것 같아서 실행 시간이 XMLGregorianCalendarImpl.class로 감지되어 내 사용자 지정 변환기가 트리거되지 않습니다.
어떻게 변환합니까? 그것은 "볼 수"클래스가 아니기 때문에 나는 ... XMLGregorianCalendarImpl.class에 여기
을 등록 할 수 있습니다 내 코드입니다 :
[…]
ConvertUtils.register(new XMLGregorianCalendarConverter(), XMLGregorianCalendar.class);
BeanUtils.copyProperties(result, original);
[…] //”result” is a object from my model with Date properties and “original” a pojo with properties with the same name but with XMLGregorianCalendar.
XMLGregorianCalendarConverter.class :
import javax.xml.datatype.XMLGregorianCalendar;
import org.apache.commons.beanutils.converters.DateConverter;
public class XMLGregorianCalendarConverter implements org.apache.commons.beanutils.Converter{
private DateConverter dateConverter = new org.apache.commons.beanutils.converters.DateConverter();
@SuppressWarnings("unchecked")
@Override
public <T> T convert(Class<T> type, Object value) {
if(value == null || value.toString().length() < 1)
return null;
if(type.toString().contains("XMLGregorianCalendar")){
XMLGregorianCalendar xmldate = (XMLGregorianCalendar) value;
return (T) xmldate.toGregorianCalendar().getTime();
}else{
return dateConverter.convert(type, value);
}
}
}
감사합니다! 대신 당신이 사용자 지정 파일을 사용할 수의 XMLGregorianCalendar 작업의
감사합니다. 드디어 JAXB Binding for Dates를 만들었습니다 : http://jsfiddle.net/4ppCG/ (내 프록시 블록 pastebin) – miguelfdez