2012-01-04 8 views
1

私はRESTのWebサービスに新しいです、私は、ジャージーの実装を使用してみましたし、クライアントを呼び出すリストを返すために、単純なWebサービスのコードを書いた:Jersey REST WebserviceでArrayを返す方法は?

@GET 
@Produces(MediaType.TEXT_XML) 
public GenericEntity<List<String>> stringlist() { 
    List<String> list = Arrays.asList("test", "as"); 
    return new GenericEntity<List<String>>(list) { 
    }; 
} 

私は私のクライアントにリストの値を取得する方法がわからないです。私はちょうど私のクライアントで以下のコードを使用してみましたが、エラーが発生しています。

service.path("rest") 
     .path("getVal") 
     .accept(MediaType.TEXT_XML) 
     .get(GenericEntity.class 

クライアントにアレイを渡す簡単なWebサービスコードを手伝ってもらえますか?

答えて

2

あなたは、いくつかの@XmlRootElement注釈付きオブジェクトのリストだけを返し、それらにアクセスすることができるはずです。

service.path("rest").path("getVal").accept(MediaType.TEXT_XML).get(new GenericEntity<List<MyObj>>{}); 

これはプレーンな文字列を含む、より複雑であるいくつかの理由で、あなたがJAXBElementの

でそれらをカプセル化する必要があります
@GET 
@Produces(MediaType.TEXT_XML) 
public List<JAXBElement<String>> stringlist() { 
    Arrays.asList(new JAXBElement[] { 
     new JAXBElement(QName.valueOf("element1"), String.class, "ahoj"), 
     new JAXBElement(QName.valueOf("element2"), String.class, "nazdar") 
    };); 
} 

、前の場合と同様にそれにアクセスしますが、

new GenericEntity<List<JAXBElement<String>>>{} 
のために「頼む」する必要があります
関連する問題