Jano,
That did the trick, thanks. I'm curious if you or anyone else has any
insight on a follow-up question. It would seem the XMLGregorianCalendar is
still in use, at least partially, after using the custom bindings file to
convert them all to java.util.Calendar objects. Below is a
ClassCastException with an XMLGregorianCalendar as well as code snippets
from the source.
Thanks again,
-C-
***EXCEPTION***
Caused by: java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.jaxp.datatype.XMLGregorianCalendarImpl
at
foo.bar.SetOrderCalendarDates_WrapperTypeHelper1.createWrapperObject(Unknown
Source)
at
org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor.handleMessage(WrapperClassOutInterceptor.java:102)
... 49 more
***JAVA OBJECT FOR WS CALL***
/**
* <p>Java class for anonymous complex type.
*
* <p>The following schema fragment specifies the expected content contained
within this class.
*
* <pre>
* <complexType>
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="requiredDates"
type="{http://bar.foo}ArrayOfDateTime"
minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"requiredDates",
})
@XmlRootElement(name = "SetOrderCalendarDates")
public class SetOrderCalendarDates {
protected ArrayOfDateTime requiredDates;
.
.
.
}
***CHILD OBJECT***
/**
* <p>Java class for ArrayOfDateTime complex type.
*
* <p>The following schema fragment specifies the expected content contained
within this class.
*
* <pre>
* <complexType name="ArrayOfDateTime">
* <complexContent>
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
* <sequence>
* <element name="dateTime" type="{
http://www.w3.org/2001/XMLSchema}dateTime" maxOccurs="unbounded"
minOccurs="0"/>
* </sequence>
* </restriction>
* </complexContent>
* </complexType>
* </pre>
*
*
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "ArrayOfDateTime", propOrder = {
"dateTime"
})
public class ArrayOfDateTime {
@XmlElement(type = String.class)
@XmlJavaTypeAdapter(CalendarXMLAdapter.class)
@XmlSchemaType(name = "dateTime")
protected List<Calendar> dateTime;
public List<Calendar> getDateTime() {
if (dateTime == null) {
dateTime = new ArrayList<Calendar>();
}
return this.dateTime;
}
}
On Mon, May 19, 2008 at 2:56 PM, <[EMAIL PROTECTED]>
wrote:
> Hello,
>
> see below.
>
> best regards
> jano
>
> <?xml version="1.0" encoding="UTF-8"?>
> <bindings version="2.1"
> xmlns="http://java.sun.com/xml/ns/jaxb"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
> >
>
> <globalBindings>
> <xjc:javaType name="java.util.Calendar" xmlType="xsd:date"
> adapter="xxx.common.jaxb.CalendarAdapter" />
>
> <xjc:javaType name="java.util.Calendar" xmlType="xsd:time"
> adapter="xxx.common.jaxb.CalendarAdapter" />
>
> <xjc:javaType name="java.util.Calendar"
> xmlType="xsd:dateTime"
> adapter="xxx.common.jaxb.CalendarAdapter" />
> </globalBindings>
> </bindings>
>
>
> package xxx.common.jaxb;
>
> import java.util.Calendar;
>
> import javax.xml.bind.annotation.adapters.XmlAdapter;
>
> public class CalendarAdapter extends XmlAdapter<String, Calendar> {
>
> public Calendar unmarshal(String value) {
> return (javax.xml.bind.DatatypeConverter.parseDateTime(value));
> }
>
> public String marshal(Calendar value) {
> if (value == null) {
> return null;
> }
> return (javax.xml.bind.DatatypeConverter.printDateTime(value));
> }
>
> }
>
>
>
>
>
> "Cord Awtry" <[EMAIL PROTECTED]>
> 05/19/2008 20:49
> Bitte antworten an
> [email protected]
>
>
> An
> [email protected]
> Kopie
>
> Thema
> dateTime custom binding [Virus checked]
>
>
>
>
>
>
> Hello all,
>
> Wondering if someone can lend some advice on an issue I'm seeing (may
> not
> even be an issue, I'm open to that as an answer ;) ). Essentially, I have
> a
> WSDL being generated by CXF with all my types inline. I have a bunch of
> xs:datetime objects which are being converted to XMLGregorianCalendar when
> I
> run wsdlToJava. I've done a bunch of research on this, seen several
> solutions and have yet to see anything work. I've copied the code from the
> cwiki for solving this, but still no resolution. It's possible what I view
> as the proper resolution may be incorrect. Essentially, I'd like to get
> rid
> of all the instances of XMLGregorianCalendar in my generated java files
> and
> have them be java.util.Date objects. Below is a copy of my bindings that
> I'm
> using with CXF 2.1. If anyone has any thoughts as to why I'm still getting
> XMLGregorianCalendar objects in my generated java files, I'd be more than
> happy to hear it.
>
> Thanks,
>
> -C-
>
> <jaxws:bindings wsdlLocation="
> http://127.0.0.1:8080/ext/services/Extension?wsdl"
> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
> <jaxws:bindings
> node="wsdl:definitions/wsdl:types/xs:[EMAIL PROTECTED]'
> http://www.tmu.com/services/Extension/2008/05'<http://www.tmu.com/services/Extension/2008/05%27>
> ]">
> <jxb:globalBindings xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jxb:javaType name="java.util.Date" xmlType="xs:dateTime"
>
> parseMethod="org.apache.cxf.tools.common.DataTypeAdapter.parseDateTime"
>
> printMethod="org.apache.cxf.tools.common.DataTypeAdapter.printDateTime"/>
> </jxb:globalBindings>
> </jaxws:bindings>
> </jaxws:bindings>
>
>