Hmm, earlier in the boot process shouldn't change anything if you manage yourself the builder, can you add why it impacted the behavior please (for completeness of this thread)?
side note: you can add annotations on generated jaxb models -> https://github.com/highsource/jaxb2-annotate-plugin . Romain Manni-Bucau @rmannibucau | Blog | Old Blog | Github | LinkedIn 2017-10-14 10:08 GMT+02:00 Paul Carter-Brown <paul.carter-br...@smilecoms.com>: > Hi Romain, > > I managed to get it to work by calling new MapperBuilder().addAdapter(new > JavascriptDate()).build(); far earlier in the bootup process. > > On 14 October 2017 at 09:40, Paul Carter-Brown < > paul.carter-br...@smilecoms.com> wrote: > >> Hi Romain, >> >> The model is generated using jaxb from an XSD. Jaxb has been set up to map >> xs:dateTime to java.time.Instant >> >> getters/setters look like this: >> public Instant getDate() { >> return date; >> } >> >> public void setDate(Instant value) { >> this.date = value; >> } >> >> As the model is generated I don't have the option of adding annotations on >> it and need to configure Johnzon to globally deal with Instant data type >> >> Paul >> >> On 14 October 2017 at 09:36, Romain Manni-Bucau <rmannibu...@gmail.com> >> wrote: >> >>> Hi >>> >>> What is your model? >>> >>> Did you try @JohnzonConverter too? >>> >>> Tomee uses an old johnzon too so can need some enhancements from master. >>> >>> Le 14 oct. 2017 03:10, "Paul Carter-Brown" <paul.carter-brown@smilecoms.c >>> om> >>> a écrit : >>> >>> > 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$FallbackConverte >>> r.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> >>> > >>> > >>> >> >> >> >> >> > > > -- > > *Paul Carter-Brown* > > *Group Chief Information Officer* > > *Smile Communications Pty (Ltd) * > Smile +234 (0) 702 000 1234 > Mobile +27 (0) 83 4427 179 > Skype PaulC-B > paul.carter-br...@smilecoms.com > www.smilecoms.com > > -- > > > This email is subject to the disclaimer of Smile Communications at > http://www.smilecoms.com/home/email-disclaimer/ > <http://www.smilecoms.com/disclaimer> >