Yea, I use jaxb-basics and it generates nillable = true, but I'm not sure
what settings to use for null == empty collection.

On Tue, May 24, 2016 at 4:47 PM, Romain Manni-Bucau <[email protected]>
wrote:

> Maybe through jaxb customizations or using jaxb mvn plugin once you
> downloaded xsd.
> Le 24 mai 2016 22:09, "Steve Goldsmith" <[email protected]> a écrit :
>
> > Hmmm, looks like JAX-WS returns null by default. I use jaxws-maven-plugin
> > to generate the artifacts, but I didn't see an xjc setting for
> >
> > @XmlElementWrapper(nillable = true, name = "return")
> >
> >
> > On Tue, May 24, 2016 at 3:49 PM, Romain Manni-Bucau <
> [email protected]
> > >
> > wrote:
> >
> > > So https://issues.apache.org/jira/browse/CXF-2978 ?
> > > Le 24 mai 2016 21:25, "Steve Goldsmith" <[email protected]> a écrit :
> > >
> > > > It's actually a JAX-WS embedded object like:
> > > >
> > > > public class RecordedEvents
> > > >     implements Serializable, Cloneable, CopyTo, Equals, HashCode,
> > > ToString
> > > > {
> > > >
> > > >     protected short returnedEventCount;
> > > >     @XmlElement(nillable = true)
> > > >     protected List<RecordedEventWrapper> returnedEvents;
> > > >
> > > >     public List<RecordedEventWrapper> getReturnedEvents() {
> > > >         if (returnedEvents == null) {
> > > >             returnedEvents = new ArrayList<RecordedEventWrapper>();
> > > >         }
> > > >         return this.returnedEvents;
> > > >     }
> > > >
> > > >     public void setReturnedEvents(List<RecordedEventWrapper> value) {
> > > >         this.returnedEvents = null;
> > > >         List<RecordedEventWrapper> draftl = this.getReturnedEvents();
> > > >         draftl.addAll(value);
> > > >     }
> > > >
> > > > Then the JAX-RS DTO has:
> > > >
> > > >     private RecordedEvents recordedEvents;
> > > >
> > > >     public RecordedEventsDto(final String customerGuid, final String
> > > masIp,
> > > >             final Long maxAgeMs, final Long transId, final String
> > stbMac,
> > > >             final Short startIndex, final Short maxEventCount) {
> > > >         super(customerGuid, masIp, maxAgeMs, transId);
> > > >         this.stbMac = stbMac;
> > > >         this.startIndex = startIndex;
> > > >         this.maxEventCount = maxEventCount;
> > > >         // IPVS needs empty lists
> > > >         recordedEvents = new RecordedEvents();
> > > >         recordedEvents.setReturnedEvents(new ArrayList<>());
> > > >     }
> > > >
> > > > So returnedEvents is initilized as an empty ArrayList, thus if I get
> a
> > > > failure I should ge an empty List, but I get null. So it's actually
> the
> > > > JAX-WS object demarshalling as null instead of empty.
> > > >
> > > >
> > > > On Tue, May 24, 2016 at 3:20 PM, Romain Manni-Bucau <
> > > [email protected]
> > > > >
> > > > wrote:
> > > >
> > > > > Hi
> > > > >
> > > > > Johnzon shouldnt skip them by default. Do you return an empty
> > > array/list?
> > > > > Le 24 mai 2016 21:09, "sgjava" <[email protected]> a écrit :
> > > > >
> > > > > > I have a requirement where I need to return an empty collection
> > > instead
> > > > > of
> > > > > > null for null collections using JAX-RS. Is there such a setting
> in
> > > > TomEE
> > > > > 7
> > > > > > for Johnzon?
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > View this message in context:
> > > > > >
> > > > >
> > > >
> > >
> >
> http://tomee-openejb.979440.n4.nabble.com/JAX-RS-return-empty-collection-instead-of-null-tp4678582.html
> > > > > > Sent from the TomEE Users mailing list archive at Nabble.com.
> > > > > >
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Steven P. Goldsmith
> > > >
> > >
> >
> >
> >
> > --
> > Steven P. Goldsmith
> >
>



-- 
Steven P. Goldsmith

Reply via email to