well, according to my sources, it'll return
java.util.GregorianCalendar
(but internally during it's creation also XMLGregorianCalendar is
used)
didn't you mixed something?
after i used CalendarAdapter (instead of setting parse/print
methods),
alll strange classes like
foo.bar.SetOrderCalendarDates_WrapperTypeHelper1
has disappeared from my project.
best regards
jano
"Cord Awtry" <[EMAIL PROTECTED]>
05/20/2008 14:01
Bitte antworten an
[email protected]
An
[email protected]
Kopie
Thema
Re: dateTime custom binding [Virus checked]
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<
http://www.w3.org/2001/XMLSchema%7DanyType>
">
* <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<
http://www.w3.org/2001/XMLSchema%7DanyType>
">
* <sequence>
* <element name="dateTime" type="{
http://www.w3.org/2001/XMLSchema}dateTime<http://www.w3.org/2001/XMLSchema%7DdateTime
>
<http://www.w3.org/2001/XMLSchema%7DdateTime>"
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>