Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何为一组数据类型列表编写自定义JAXB适配器_Java_Xml_Jaxb_Marshalling - Fatal编程技术网

Java 如何为一组数据类型列表编写自定义JAXB适配器

Java 如何为一组数据类型列表编写自定义JAXB适配器,java,xml,jaxb,marshalling,Java,Xml,Jaxb,Marshalling,我有一个需要通过JAXB解析的对象引用,我需要为此编写一个自定义适配器。参考文献是 Set<List<CustomClass>> 我需要通过Jersey API服务返回1级折扣,即我的折扣 类文件3 import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.FormParam; import javax.ws.rs.Produces; imp

我有一个需要通过JAXB解析的对象引用,我需要为此编写一个自定义适配器。参考文献是

Set<List<CustomClass>>
我需要通过Jersey API服务返回1级折扣,即我的折扣

类文件3

import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.Produces;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.core.Context;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

        @Path("/discount")
        public class DiscountService{

        @POST
        @Produces("application/xml")  
        @Path("/couponCartValid")
             public String getDiscountsXML(){
                MyDiscounts discount=new MyDiscounts();
                try{
                   Marshaller jaxbMarshaller =jaxbContext.createMarshaller();
                            StringWriter writerxmlObj = new StringWriter();
                            jaxbMarshaller.marshal(order, writerxmlObj);
                            String xml = String.valueOf(writerxmlObj);
                            xml = xml.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim();
                            return xml;
                }catch(Exception e){
                  return e.printStackTrace();
                }

             }
import javax.servlet.http.HttpServletRequest;
导入javax.ws.rs.Consumes;
导入javax.ws.rs.FormParam;
导入javax.ws.rs.products;
导入javax.ws.rs.Path;
导入javax.ws.rs.POST;
导入javax.ws.rs.core.Context;
导入javax.xml.bind.JAXBContext;
导入javax.xml.bind.JAXBException;
导入javax.xml.bind.Marshaller;
导入javax.xml.bind.Unmarshaller;
@路径(“/折扣”)
公共类折扣服务{
@职位
@生成(“应用程序/xml”)
@路径(“/couponCartValid”)
公共字符串getDiscountsXML(){
我的折扣=新的我的折扣();
试一试{
Marshaller jaxbMarshaller=jaxbContext.createMarshaller();
StringWriter writerxmlObj=新StringWriter();
jaxbMarshaller.marshall(命令,writerxmlObj);
String xml=String.valueOf(writerxmlObj);
xml=xml.replaceAll(“\\”,“”)。trim();
返回xml;
}捕获(例外e){
返回e.printStackTrace();
}
}

请分享一些代码,也许还有一个示例数据-否则你将很难得到好的/相关的答案。一些细节,例如HttpService参数,由于它们对讨论不重要,因此被省略了。你希望从
集合
中获得什么XML?这是一个非常奇怪的数据结构,集合使其无序-那么,这个集合中包含的列表(以任何顺序)的语义是什么呢?想象一下,在现实世界中,我必须将一些折扣组合在一起。在这里,我必须有一个代表一个组合的折扣链接列表。然后,将有一组折扣组合到一个集合中。本质上,我会We’我们有一套折扣,这些折扣将以组合形式提供。
   import java.util.*;

   @XmlRootElement
   @XmlAccessorType(value = XmlAccessType.FIELD)    
   public class JobServiceDiscountsPOJO{
       int discountAmount=0; 
       //constructors and other methods
   }
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Consumes;
import javax.ws.rs.FormParam;
import javax.ws.rs.Produces;
import javax.ws.rs.Path;
import javax.ws.rs.POST;
import javax.ws.rs.core.Context;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;

        @Path("/discount")
        public class DiscountService{

        @POST
        @Produces("application/xml")  
        @Path("/couponCartValid")
             public String getDiscountsXML(){
                MyDiscounts discount=new MyDiscounts();
                try{
                   Marshaller jaxbMarshaller =jaxbContext.createMarshaller();
                            StringWriter writerxmlObj = new StringWriter();
                            jaxbMarshaller.marshal(order, writerxmlObj);
                            String xml = String.valueOf(writerxmlObj);
                            xml = xml.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim();
                            return xml;
                }catch(Exception e){
                  return e.printStackTrace();
                }

             }