Pessoal, estou com problema em fazer o parsing de um objeto quando tenho um atributo do tipo GregorianCalendar.
import java.util.GregorianCalendar;
public class MyObject {
private Long number;
private GregorianCalendar calendar;
public GregorianCalendar getCalendar() {
return calendar;
}
public void setCalendar(GregorianCalendar calendar) {
this.calendar = calendar;
}
public Long getNumber() {
return number;
}
public void setNumber(Long long1) {
number = long1;
}
}
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter;
import java.io.Writer;
import java.util.GregorianCalendar;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
import org.xml.sax.InputSource;
public class TesteParsing {
public static void main(String[] args) throws MarshalException, ValidationException, IOException {
MyObject myObject = new MyObject();
myObject.setCalendar(new GregorianCalendar());
myObject.setNumber(new Long(2));
StringWriter stringWriter = new StringWriter();
TesteParsing.marshaller(myObject, stringWriter);
StringReader reader = new StringReader(stringWriter.toString());
MyObject obj = (MyObject) TesteParsing.unmarshaller(myObject, reader);
}
public static Object unmarshaller(Object object, Reader reader) throws MarshalException, ValidationException {
Object unmarshalObject = null;
InputSource inputSource = new InputSource(reader);
Unmarshaller unmarshaller = new Unmarshaller(object.getClass());
unmarshalObject = unmarshaller.unmarshal(inputSource);
return unmarshalObject;
}
public static void marshaller(Object object, Writer writer) throws IOException, MarshalException, ValidationException {
Marshaller marshaller = new Marshaller(writer);
marshaller.marshal(object);
}
}
Quando faz o parsing de XML para Object acontece o seguinte erro:
org.xml.sax.SAXException: Parsing Error : Attribute "raw-offset" was already specified for element "time-zone".
Line : 2
Column : 240
at org.exolab.castor.xml.UnmarshalHandler.fatalError(UnmarshalHandler.java:2228)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at walgreens.TesteParsing.main(TesteParsing.java:36)
Exception in thread "main"
Estou usando o Castor, tentei também com o XStream e o mesmo problema aconteceu. Por acaso alguém tem a solução desse problema?
Desde já valeu.