Rest JERSEY-在响应中访问通用列表

Rest JERSEY-在响应中访问通用列表,rest,jakarta-ee,jaxb,jersey,Rest,Jakarta Ee,Jaxb,Jersey,在客户端响应中,我遇到了获取通用列表的问题。出于某种原因,我需要将其作为实体 @XmlRootElement(name="list") @XmlSeeAlso({RESTDomain.class}) public class JAXBContainer<T> { private List<T> items = new ArrayList<T>(); public JAXBContainer() { } public JAXBCont

在客户端响应中,我遇到了获取通用列表的问题。出于某种原因,我需要将其作为实体

@XmlRootElement(name="list")
@XmlSeeAlso({RESTDomain.class})
public class JAXBContainer<T> {
    private List<T> items = new ArrayList<T>();

    public JAXBContainer() { }

    public JAXBContainer(List<T> items) {
        this.items = items;
    }

    @XmlElementWrapper(name="items")
    @XmlAnyElement(lax=true)
    public List<T> getItems() {
        return items;
    }

    public void setItems(List<T> items) {
        this.items = items;
    }

    @XmlAttribute
    public int getItemsSize() {
        return this.items.size();
    }
@XmlRootElement(name=“list”)
@XMLSEEALAST({RESTDomain.class})
公共类JAXBContainer{
私有列表项=新的ArrayList();
公共JAXBContainer(){}
公共JAXB容器(列表项){
这个项目=项目;
}
@xmlementwrapper(name=“items”)
@xmlanyement(lax=true)
公共列表getItems(){
退货项目;
}
公共无效集合项(列表项){
这个项目=项目;
}
@XmlAttribute
public int getItemsSize(){
返回此.items.size();
}
以上是我的解决方案通用列表

 @GET
    @Produces({MediaType.APPLICATION_XML})
    public Response getREST(){  
        RESTDomain domain = new RESTDomain();
        domain.setName("Adams");
        domain.setPlace("Zurich");
        List<RESTDomain> restDomains = new ArrayList<RESTDomain>();
        restDomains.add(domain);        
        JAXBContainer<RESTDomain> jAXBContainer= new JAXBContainer<RESTDomain>(restDomains);        
        GenericEntity<JAXBContainer<RESTDomain>> genericEntity = new GenericEntity<JAXBContainer<RESTDomain>>(jAXBContainer){};


        return Response.ok(genericEntity).build();

    }
@GET
@产生({MediaType.APPLICATION_XML})
公共响应getREST(){
RESTDomain=新的RESTDomain();
域名设置名称(“Adams”);
域名设置地点(“苏黎世”);
List restDomains=new ArrayList();
添加(域);
JAXBContainer JAXBContainer=新的JAXBContainer(restDomains);
GenericEntity GenericEntity=新的GenericEntity(jAXBContainer){};
返回Response.ok(genericEntity.build();
}
我返回了带有genericEntity的容器。我知道只要使用genericEntity中的List,我就可以在客户端获取实体,但问题是出于某种原因,我需要使用我的JAXBContainer

 @Test
            public void restGet() throws JAXBException{     
                ClientConfig cc = new DefaultClientConfig();        
                client = Client.create(cc);
            String baseURI ="http://localhost:3555/SampleREST/rest/sample";
                    WebResource webResource = client.resource(baseURI);         
                    JAXBContainer<RESTDomain> jAXBContainer= webResource.get(new GenericType<JAXBContainer<RESTDomain>>(){});         
                     System.out.println("response:: "+jAXBContainer.getItemsSize());
    }
@测试
public void restGet()抛出JAXBEException{
ClientConfig cc=newdefaultclientconfig();
client=client.create(cc);
字符串baseURI=”http://localhost:3555/SampleREST/rest/sample";
WebResource=client.resource(baseURI);
JAXBContainer JAXBContainer=webResource.get(新的GenericType(){});
System.out.println(“响应::”+jAXBContainer.getItemsSize());
}
我的问题是,我以JAXBContainer的身份获得响应,其GenericType符合要求,但容器的大小为0。我在这里缺少什么?我必须使用任何编组和解编组机制吗


但是,当我在浏览器中请求此URI时,我得到了格式良好的XML,但它在客户端失败,或者我们是否有任何其他方法来提取客户端中的实体。提前感谢我看不到您在客户端的任何位置设置了接受内容类型。
尝试:webResource.accept(“application/xml”)

我看不出您在客户端的任何位置设置了accept内容类型。 尝试:webResource.accept(“应用程序/xml”)