2016-09-23 3 views
5

Ich habe einen Tomee-Server und von Android kann ich GET-Methoden aufrufen und funktioniert gut. Jetzt versuche ich mit Volley-Bibliothek eine Einheit POST, die ein Feld java.util.Date hat aber in Server i erhalten:Johnzon Desirialisierung Datum über Rest

WARNING - Interceptor for  {http://services.scol.csd.gr/}MeasureinfoFacadeREST has thrown exception,  unwinding now 
org.apache.johnzon.mapper.MapperException: java.text.ParseException: Unparseable date: "Sep 23, 2016 13:14:29" 

WARNING - Exception in handleFault on interceptor o[email protected]60d6a046 
org.apache.cxf.interceptor.Fault: java.text.ParseException: Unparseable date: "Sep 23, 2016 13:46:36" 

Caused by: java.text.ParseException: Unparseable date: "Sep 23, 2016 13:14:29" 
    at java.text.DateFormat.parse(DateFormat.java:366) 
    at org.apache.johnzon.mapper.converter.DateConverter.fromString(DateConverter.java:49) 
    ... 48 more 

Ich versuchte johnzon Konverter wie außer Kraft zu setzen:

in resources.xml:

<?xml version="1.0"?> 
<resources> 
    <Service id="johnzon" class-name="org.apache.johnzon.jaxrs.ConfigurableJohnzonProvider"> 
    accessModeName = field 
    </Service> 
</resources> 

in openejb-jar.xml

<?xml version="1.0" encoding="UTF-8"?> 
<openejb-jar> 
    <pojo-deployment class-name="test"> 
    <properties> 
     cxf.jaxrs.skip-provider-scanning = true 
     cxf.jaxrs.providers = johnzon,org.apache.openejb.server.cxf.rs.EJBAccessExceptionMapper 
    </properties> 
    </pojo-deployment> 
</openejb-jar> 

in pojo-Einsatz i einen beliebigen Namen geben wie 'Test'

public class LocalDateConverter implements Converter<Date> { 
    @Override 
    public String toString(final Date instance) { 
     final Calendar cal = GregorianCalendar.getInstance(); 
     cal.setTime(instance); 
     return DatatypeConverter.printDateTime(cal); 
    } 

    @Override 
    public Date fromString(final String text) { 
     return DatatypeConverter.parseDateTime(text).getTime(); 
    } 
} 

und dann in meiner Einheit:

@JohnzonConverter(LocalDateConverter.class) 
public Date getDay() { 
    return day; 
} 

@JohnzonConverter(LocalDateConverter.class) 
public void setDay(Date day) { 
    this.day = day; 
} 

fand ich diese Konfiguration von here

aber das Problem bleibt.

Irgendwelche Vorschläge?

Antwort

0
accessModeName = field 

so

@JohnzonConverter(LocalDateConverter.class) 

geht auf dem Feld;)

+0

Es scheint richtig, aber tat es – ddarellis

+0

https://github.com/apache/johnzon/blob/982af7173b1596134c6ed9ce43d871863f58e285/johnzon- beheben mapper/src/test/java/org/apache/johnzon/mapper/konverter/TimestampAdapterTest.java ist fast genau das, was Sie tun, außer das Format ist anders frage mich, ob es sein kann, dass Sie auf einer älteren Version verwenden? –