【发布时间】:2015-02-17 06:08:00
【问题描述】:
我正在尝试映射两个属性,都是 XMLGregorianCalendar 类型。试图通过推土机来实现这一点,值正在被映射,但得到如下奇怪的日期时间值
XML 输入
<urn1:ReservationDate>2015-02-11</urn1:ReservationDate>
<urn1:ReservationTime>03:28:00</urn1:ReservationTime>
以 JSON 格式输出
"reservationDate": 1423593000000,
"reservationTime": -7320000
我的推土机映射如下
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<configuration>
<stop-on-errors>true</stop-on-errors>
<date-format>MM/dd/yyyy HH:mm</date-format>
<!-- <date-format>MM-dd-yyyy</date-format> -->
<wildcard>true</wildcard>
<custom-converters>
<converter type="com.xxx.util.XMLGC2XMLGC">
<class-a>javax.xml.datatype.XMLGregorianCalendar</class-a>
<class-b>javax.xml.datatype.XMLGregorianCalendar</class-b>
</converter>
</custom-converters>
</configuration>
<mapping>
<class-a>com.xxx..ReservationType
</class-a>
<class-b>com.xxx..ReservationDto
</class-b>
<field>
<a>pnrLocator</a>
<b>pnrLocator</b>
</field>
<field>
<a>reservationDate</a>
<b>reservationDate</b>
<a-hint>java.util.GregorianCalendar</a-hint>
</field>
</mapping>
</mappings>
XMLGC2XMLGC类代码
public class XMLGC2XMLGC extends
DozerConverter<XMLGregorianCalendar, XMLGregorianCalendar> {
public XMLGC2XMLGC() {
super(XMLGregorianCalendar.class, XMLGregorianCalendar.class);
}
@Override
public XMLGregorianCalendar convertFrom(XMLGregorianCalendar src,
XMLGregorianCalendar dest) {
return src;
}
@Override
public XMLGregorianCalendar convertTo(XMLGregorianCalendar src,
XMLGregorianCalendar dest) {
return dest;
}
我什至尝试将 Date 转换为 XMLGregorianCalendar,因为我阅读了一些说明它应该自动发生的文档,但是在执行相同操作时我遇到了这样的异常
java.lang.IllegalAccessException:类 org.dozer.util.ReflectionUtils 无法使用修饰符“public”访问 org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl 类的成员
请帮忙
【问题讨论】:
标签: date calendar mapping dozer