Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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 如何删除GET请求中的一些XML标记_Java_Xml_Rest_Jpa_Jaxb - Fatal编程技术网

Java 如何删除GET请求中的一些XML标记

Java 如何删除GET请求中的一些XML标记,java,xml,rest,jpa,jaxb,Java,Xml,Rest,Jpa,Jaxb,我想在浏览器上打印如下内容: <measureTypes> <measureType>weight</measureType> <measureType>height</measureType> <measureType>steps</measureType> <measureType>bloodpressure</measureType> </mea

我想在浏览器上打印如下内容:

<measureTypes>
    <measureType>weight</measureType>
    <measureType>height</measureType>
    <measureType>steps</measureType>
    <measureType>bloodpressure</measureType>
</measureTypes>
但我得到的结果是:

<measureDefinitions>
    <measureDefinition>
        <measureName>weight</measureName>
    </measureDefinition>
    <measureDefinition>
        <measureName>height</measureName>
    </measureDefinition>
    <measureDefinition>
        <measureName>steps</measureName>
    </measureDefinition>
    <measureDefinition>
        <measureName>blood pressure</measureName>
    </measureDefinition>
    <measureDefinition>
        <measureName>heart rate</measureName>
    </measureDefinition>
    <measureDefinition>
        <measureName>bmi</measureName>
    </measureDefinition>
</measureDefinitions>
以下是我在模型类中的代码:

@NamedQuery(name="MeasureDefinition.findAll", query="SELECT m FROM MeasureDefinition m")
public static List<MeasureDefinition> getAll() {
    EntityManager em = LifeCoachDao.instance.createEntityManager();

    List<MeasureDefinition> list = em.createNamedQuery("MeasureDefinition.findAll",                    MeasureDefinition.class).getResultList();
    LifeCoachDao.instance.closeConnections(em);
    return list;
}
以下是资源类中的代码这是我打印输出的地方:

@GET
@Produces({MediaType.TEXT_XML,  MediaType.APPLICATION_JSON ,  MediaType.APPLICATION_XML })
public List<MeasureDefinition> getMeasuresTypes() {
    EntityManager em = LifeCoachDao.instance.createEntityManager();
    System.out.println("Getting list of measures...");
    List<MeasureDefinition> measures = MeasureDefinition.getAll();
    System.out.println("Measures " + measures);
    System.out.println("Size of the list " + measures.size());
    return measures;
}

因此,我的问题是:如何从输出中删除?我做错什么了吗

您可能需要围绕该列表创建客户包装,然后执行以下操作:

@XmlRootElement(name = "measureTypes")
public class MessageDefinitionResult {

    @XmlElement(name = "measureType")
    @XmlJavaTypeAdapter(MeasureDefinitionXmlAdapter.class)
    private List<MeasureDefinition> measureDefinitions;

    public MessageDefinitionResult(final List<MeasureDefinition> measureDefinitions) {
        this.measureDefinitions = measureDefinitions;
    }

    public MessageDefinitionResult() { }

    public List<MeasureDefinition> getMeasureDefinitions() {
        return measureDefinitions;
    }

    public static final class MeasureDefinitionXmlAdapter extends XmlAdapter<String, MeasureDefinition> {

        @Override
        public MeasureDefinition unmarshal(final String v) throws Exception {
            return null; // or whatever
        }

        @Override
        public String marshal(final MeasureDefinition v) throws Exception {
            return v.getName();
        }
    }

}

你能发布MeasureDefinition.findAll查询和measuredefinitionbean吗?我已经发布了。它是在@NamedQueryAsies中定义的,最有效的方法是不发送MeasureDefinition列表,而是发送单个MeasureDefinition,然后使measureName属性成为字符串列表。这将为您提供所需的输出。
package de.zalando.shop.frontend.springmvc.controller.user.account;

/**
 * @author  mochieng (marembo.isaiah.ochieng@zalando.de)
 * @since   Nov 13, 2015
 */
public class MeasureDefinition {

    private String name;

    private String value;

    private String moreValuesAndProperties;

    public MeasureDefinition(final String name) {
        this.name = name;
    }

    public MeasureDefinition(final String name, final String value, final String moreValuesAndProperties) {
        this.name = name;
        this.value = value;
        this.moreValuesAndProperties = moreValuesAndProperties;
    }

    public MeasureDefinition() { }

    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public String getMoreValuesAndProperties() {
        return moreValuesAndProperties;
    }

}