package com.smartlogic.ses.client;

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import org.w3c.dom.Element;

public abstract class AbstractSimpleNodeDate extends AbstractSimpleNode  {
	private static final long serialVersionUID = -7383419011106091654L;

	public AbstractSimpleNodeDate() {}
	
	public AbstractSimpleNodeDate(String value) {
		super(value);
	}

	public AbstractSimpleNodeDate(Element element) {
		super(element);
	}
	
	
	private final static DateTimeFormatter defaultDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"); 
	public ZonedDateTime getZonedDateTime() {
		if ((getValue() == null) || (getValue().length() == 0)) return null;
		
		return ZonedDateTime.parse(getValue(), defaultDateTimeFormatter);
	}
	public void setZonedDateTime(ZonedDateTime zonedDateTime) {
		setValue(defaultDateTimeFormatter.format(zonedDateTime));
	}
	
	public ZonedDateTime getZonedDateTime(DateTimeFormatter dateTimeFormatter) {
		if ((getValue() == null) || (getValue().length() == 0)) return null;
		
		return ZonedDateTime.parse(getValue(), dateTimeFormatter);
	}

}

package com.smartlogic.ses.client;

import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

import org.w3c.dom.Element;

import javax.xml.bind.annotation.XmlTransient;

public abstract class AbstractSimpleNodeDate extends AbstractSimpleNode  {
	private static final long serialVersionUID = -7383419011106091654L;

	public AbstractSimpleNodeDate() {}
	
	public AbstractSimpleNodeDate(String value) {
		super(value);
	}

	public AbstractSimpleNodeDate(Element element) {
		super(element);
	}
	
	
	private final static DateTimeFormatter defaultDateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ");
	@XmlTransient
	public ZonedDateTime getZonedDateTime() {
		if ((getValue() == null) || (getValue().length() == 0)) return null;
		
		return ZonedDateTime.parse(getValue(), defaultDateTimeFormatter);
	}
	public void setZonedDateTime(ZonedDateTime zonedDateTime) {
		setValue(defaultDateTimeFormatter.format(zonedDateTime));
	}
	
	public ZonedDateTime getZonedDateTime(DateTimeFormatter dateTimeFormatter) {
		if ((getValue() == null) || (getValue().length() == 0)) return null;
		
		return ZonedDateTime.parse(getValue(), dateTimeFormatter);
	}

}

Mark the getZonedDateTime method with @XmlTransient. The JAXB parsers are seeing the getX and setX methods and assume there's a state property of type ZonedDateTime. The old JAXB implementations (java 8) don't handle the java.time stuff at all. This fixes the JAXB problem for a client (AZ).