Hi,

I've created an adapter as follows:

public class JavascriptDate implements Adapter<String, Instant> {

    @Override
    public String to(Instant instance) {
        final Calendar cal = GregorianCalendar.getInstance();
        cal.setTime(Date.from(instance));
        return DatatypeConverter.printDateTime(cal);
    }

    @Override
    public Instant from(String text) {
        return DatatypeConverter.parseDateTime(text).getTime().toInstant();
    }
}

and register it globally like this in a servlet init:

new MapperBuilder().addAdapter(new JavascriptDate()).build();

When I call a rest service passing a date formatted string field that needs
to map to an Instant I get an error:

org.apache.johnzon.mapper.MapperException: Using fallback converter, this
only works in write mode but not in read. Please register a custom
converter to do so.
at
org.apache.johnzon.mapper.MappingParserImpl$FallbackConverter.fromString(MappingParserImpl.java:715)
at org.apache.johnzon.mapper.internal.ConverterAdapter.to
(ConverterAdapter.java:37)
at org.apache.johnzon.mapper.internal.ConverterAdapter.to
(ConverterAdapter.java:24)
at
org.apache.johnzon.mapper.MappingParserImpl.convertTo(MappingParserImpl.java:682)
at
org.apache.johnzon.mapper.MappingParserImpl.toObject(MappingParserImpl.java:523)
at
org.apache.johnzon.mapper.MappingParserImpl.toValue(MappingParserImpl.java:634)
at
org.apache.johnzon.mapper.MappingParserImpl.buildObject(MappingParserImpl.java:318)
at
org.apache.johnzon.mapper.MappingParserImpl.readObject(MappingParserImpl.java:133)


Any ideas why my mapper is not being used?

Thanks
Paul

-- 


This email is subject to the disclaimer of Smile Communications at 
http://www.smilecoms.com/home/email-disclaimer/ 
<http://www.smilecoms.com/disclaimer>

Reply via email to