Jersey problem latest docker vs eclipse ide

I think I am running into a class path issue trying to utilize Jersey to make rest calls to an external service.

The code ran within Openhab 2 inside docker about a week ago, but has since stopped. Also, it still works when I run openhab within the IDE.

This code runs fine, and logs out the string of xml returned by the rest endpoint

String variables = integerVariablesTarget.request().header(AUTHORIZATIONHEADERNAME, authorizationHeaderValue)
        logger.debug("variables string is: " + variables);

However, this following line does not run. It is using the auto-marshaling mechanism in the jersey client libs.

  List<Variable> integerVariables = integerVariablesTarget.request()
                .header(AUTHORIZATIONHEADERNAME, authorizationHeaderValue).accept(MediaType.APPLICATION_XML_TYPE)
                .get(new GenericType<List<Variable>>() {

Here is the stack trace.

2017-01-21 09:10:54.634 [ERROR] [sy.discovery.IsyRestDiscoveryService] - error in discover programs
	at org.glassfish.jersey.client.JerseyInvocation.translate(
	at org.glassfish.jersey.client.JerseyInvocation.access$800(
	at org.glassfish.jersey.client.JerseyInvocation$
	at org.glassfish.jersey.internal.Errors.process([157:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors.process([157:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.internal.Errors.process([157:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.process.internal.RequestScope.runInScope([157:org.glassfish.jersey.core.jersey-common:2.22.2]
	at org.glassfish.jersey.client.JerseyInvocation.invoke(
	at org.glassfish.jersey.client.JerseyInvocation$Builder.method(
	at org.glassfish.jersey.client.JerseyInvocation$Builder.get(
	at org.openhab.binding.isy.internal.IsyRestClient.recursiveGetPrograms(

I am thinking I am missing some dependency now or the class loading has changed in the recent updates to the Openhab runtime.

Anyone have ideas how I could debug this, I am stumped.


Some more info.

Using remote debugging, I set up a breakpoint for the exception. It looks like this is the root cause of the execution.

org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyReader not found for media type=text/xml;charset=UTF-8, type=interface java.util.List, genericType=java.util.List<org.openhab.binding.isy.internal.Program>.

However, I do have the Program class set up correctly, it marshals the xml to the java class via the ide, and used to work on last weeks runtime.

Here is how java bean is set up.

package org.openhab.binding.isy.internal;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;


public class Program {

    @XmlAttribute(name = "id")