2016-09-23 22 views
5

Tôi có một máy chủ tomee và từ android tôi có thể gọi phương thức GET và hoạt động tốt. Bây giờ tôi cố gắng để POST với thư viện bóng một thực thể trong đó có một java.util.Date lĩnh vực nhưng trong máy chủ tôi nhận được:Johnzon desirializing ngày qua phần còn lại

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 

Tôi cố gắng để ghi đè Chuyển đổi johnzon như:

trong resources.xml:

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

trong 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> 

trong POJO triển khai tôi cung cấp cho một tên ngẫu nhiên như '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(); 
    } 
} 

và sau đó trong thực thể của tôi:

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

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

tôi thấy cấu hình này từ here

nhưng vấn đề vẫn còn.

Mọi đề xuất?

Trả lời

0
accessModeName = field 

nên

@JohnzonConverter(LocalDateConverter.class) 

đi trên sân;)

+0

Có vẻ như đúng nhưng didnt sửa chữa nó – ddarellis

+0

https://github.com/apache/johnzon/blob/982af7173b1596134c6ed9ce43d871863f58e285/johnzon- mapper/src/test/java/org/apache/johnzon/mapper/chuyển đổi/TimestampAdapterTest.java gần như chính xác những gì bạn làm ngoại trừ định dạng khác nhau tự hỏi nếu nó có thể là bạn sử dụng trên bản phát hành cũ hơn? –

Các vấn đề liên quan