0

これはここに何度も投稿されていますが、解決策はありませんでした...
ラッパークラスを作成することでこのエラーを回避できますが、返されるだけでした

</stringWrapper>

私は何を間違っていますか?

StringWrapper クラス:

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement
public class StringWrapper {
    public StringWrapper (){}

    List<String> list=new ArrayList<String>();

    public void add(String s){ 
        list.add(s);
    }
}

コード:

     @Path("/xml")
     @GET
     @Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})
     public StringWrapper mystring(){
        StringWrapper thestring=new StringWrapper();
        thestring.add("a");
        thestring.add("a");
        return thestring;
     }

Jersey を使用した Java Rest Web サービス。

4

1 に答える 1

2

StringWrapper に少なくともゲッ​​ターを追加する必要があります。public 属性がなければ、シリアル化するものは何もありません。したがって、出力は正しいです。文字列のリストをタグで囲んだくない場合は、@XmlValue で単一のゲッターをマークできます。

@XmlRootElement
public class StringWrapper {
    public StringWrapper (){}

    List<String> list=new ArrayList<String>();

    public void add(String s) { list.add(s); }

    @XmlValue    
    public List<String> getData() { return list; }

}
于 2013-08-17T00:30:40.167 に答える