[ https://issues.apache.org/jira/browse/CXF-2057?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12676644#action_12676644 ]
deki edited comment on CXF-2057 at 2/25/09 5:22 AM: ------------------------------------------------------------------ Register as rootClass against DateType? This didn't work: typeMapping.register(java.util.Date.class, XMLSchemaQNames.XSD_DATE, new org.apache.cxf.aegis.type.basic.DateType()); typeMapping.register(java.sql.Date.class, XMLSchemaQNames.XSD_DATE, new org.apache.cxf.aegis.type.basic.DateType()); I assume you meant XMLGregorianCalendarType and not XMLGregorianDateType. Tried to remove it with: TypeMapping typeMapping = aegisContext.getTypeMapping(); if (typeMapping!=null) { LOG.info("XMLGregorianCalendarType registered? "+typeMapping.isRegistered(XMLGregorianCalendarType.class)); LOG.info("XMLGregorianCalendar registered? "+typeMapping.isRegistered(XMLGregorianCalendar.class)); Type type = typeMapping.getType(XMLSchemaQNames.XSD_DATE); if (type!=null) { LOG.info("removing "+type.getTypeClass()); typeMapping.removeType(type); } else { LOG.info("no type present for "+XMLSchemaQNames.XSD_DATE); } LOG.info("XMLGregorianCalendarType registered? "+typeMapping.isRegistered(XMLGregorianCalendarType.class)); LOG.info("XMLGregorianCalendar registered? "+typeMapping.isRegistered(XMLGregorianCalendar.class)); } else { LOG.warn("no typeMapping present"); } Seems to be removed: 0225 14:18:21 INFO XMLGregorianCalendarType registered? false 0225 14:18:21 INFO XMLGregorianCalendar registered? true 0225 14:18:21 INFO removing class javax.xml.datatype.XMLGregorianCalendar 0225 14:18:21 INFO XMLGregorianCalendarType registered? false 0225 14:18:21 INFO XMLGregorianCalendar registered? false But exception stays the same afterwards. was (Author: deki): Register as rootClass against DateType? This didn't work: typeMapping.register(java.util.Date.class, XMLSchemaQNames.XSD_DATE, new org.apache.cxf.aegis.type.basic.DateType()); typeMapping.register(java.sql.Date.class, XMLSchemaQNames.XSD_DATE, new org.apache.cxf.aegis.type.basic.DateType()); I assume you meant XMLGregorianCalendarType and not XMLGregorianDateType. Tried to remove it with: TypeMapping typeMapping = aegisContext.getTypeMapping(); if (typeMapping!=null) { LOG.info("XMLGregorianCalendarType registered? "+typeMapping.isRegistered(XMLGregorianCalendarType.class)); LOG.info("XMLGregorianCalendar registered? "+typeMapping.isRegistered(XMLGregorianCalendar.class)); Type type = typeMapping.getType(XMLSchemaQNames.XSD_DATE); if (type!=null) { LOG.info("removing "+type.getTypeClass()); typeMapping.removeType(type); } else { LOG.info("no type present for "+XMLSchemaQNames.XSD_DATE); } LOG.info("XMLGregorianCalendarType registered? "+typeMapping.isRegistered(XMLGregorianCalendarType.class)); LOG.info("XMLGregorianCalendar registered? "+typeMapping.isRegistered(XMLGregorianCalendar.class)); } else { LOG.warn("no typeMapping present"); } Seems to be removed: 0225 14:18:21 INFO de.ewetel.b2b.backend.core.util.AegisContextHelper XMLGregorianCalendarType registered? false 0225 14:18:21 INFO de.ewetel.b2b.backend.core.util.AegisContextHelper XMLGregorianCalendar registered? true 0225 14:18:21 INFO de.ewetel.b2b.backend.core.util.AegisContextHelper removing class javax.xml.datatype.XMLGregorianCalendar 0225 14:18:21 INFO de.ewetel.b2b.backend.core.util.AegisContextHelper XMLGregorianCalendarType registered? false 0225 14:18:21 INFO de.ewetel.b2b.backend.core.util.AegisContextHelper XMLGregorianCalendar registered? false But exception stays the same afterwards. > java.sql.Date with alternative type binding causes ClassCastException > --------------------------------------------------------------------- > > Key: CXF-2057 > URL: https://issues.apache.org/jira/browse/CXF-2057 > Project: CXF > Issue Type: Bug > Components: Aegis Databinding > Affects Versions: 2.1.4 > Environment: Java 1.5 > Reporter: Dennis Kieselhorst > Assignee: Benson Margulies > Fix For: 2.2 > > > Put a java.sql.Date from a ResultSet in a DTO as java.util.Date. The value is > correctly serialized as xsd:dateTime. > After adding the following mapping (found at > http://cwiki.apache.org/CXF20DOC/aegis-21.html), a ClassCastException is > thrown: > <mappings xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <mapping> > <property name="birthday" > type="org.apache.cxf.aegis.type.basic.DateType" > typeName="xsd:date"/> > </mapping> > </mappings> > java.lang.ClassCastException: java.sql.Date > at > org.apache.cxf.aegis.type.java5.XMLGregorianCalendarType.writeObject(XMLGregorianCalendarType.java:54) > at > org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:377) > at > org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:356) > at > org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:293) > at > org.apache.cxf.aegis.type.basic.BeanType.writeElement(BeanType.java:377) > at > org.apache.cxf.aegis.type.basic.BeanType.writeObjectInternal(BeanType.java:356) > at > org.apache.cxf.aegis.type.basic.BeanType.writeObject(BeanType.java:293) > at > org.apache.cxf.aegis.databinding.XMLStreamDataWriter.write(XMLStreamDataWriter.java:92) > at > org.apache.cxf.aegis.databinding.XMLStreamDataWriter.write(XMLStreamDataWriter.java:43) > at > org.apache.cxf.interceptor.AbstractOutDatabindingInterceptor.writeParts(AbstractOutDatabindingInterceptor.java:113) > at > org.apache.cxf.interceptor.BareOutInterceptor.handleMessage(BareOutInterceptor.java:68) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) > at > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:74) > at > org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220) > at > org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78) > at > org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92) > at > org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:285) > at > org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:168) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:175) > at > org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:153) > I can create a testcase, if needed. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.