2017-06-28 6 views
2

私はJersey 2.5.1とJAX-RS 2.0のJavaプロジェクトを手に入れました。そして、クラスvalueCodingのArrayListのを使用して、GETリクエストの次の応答を取得しよう:REST、ArrayListのXML表現のフォーマット

目標:

<valueCoding> 
     <name value="Peter"/> 
</valueCoding> 

Unfortunarelyイムなしで開始タグと終了タグで、次のような結果を得ますクローンを作成しようとしているイムサービスで使用される "値" -representation、:

結果:

<valueCoding> 
     <name>Peter</name> 
</valueCoding> 

"valueCoding"は、GetterとSetterでString "name"を含む単純なクラスです。

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 

トップにマッピングされた私の低い出力を得るための簡単な方法があります: 私は私のXMLレスポンスを操作して、次のアノテーションを使用していますか?

おそらく間違ったMediaTypeを使用していますか、それともArrayListでは不可能ですか?私はまた、HashSetを試しました。だから私は、安静なロジックのその部分をもっと推測していますか?

ありがとうございます!

答えて

2

代わりvalueCodingにプレーンStringとしてnameを有するので、あなたがラッパークラス内でそれをカプセル化することは:

@XmlRootElement(name = "name") 
public class Name { 

    private String value; 

    public void setValue(String value){ 

     this.value = value; 
    } 

    @XmlAttribute 
    public String getValue(){ 

     return value; 

    } 

} 
+1

、@XmlAttributeは3 <細かいおかげでやっています – MavidDeyers

1

私がもしそうならジャージはMOXYを使用している、またXmlPathを使用することが可能であるべきだと思います注釈

@XmlPath("valueCoding/name/@value") 
String name 

さらにread