13

Listを返そうとしているときに、そのスローが応答クラスArrayListのメッセージ本文ライターが見つかりませんでした。

私は次のようなコードを持っています:

@POST 
@Path("/{scope}/{application}/tables")
@Produces("application/xml")
public List<String> getTableNames(@PathParam("scope") String scope,
    @PathParam("application") String application, Request request) {

    // For example, I am returning a list of String
    return new ArrayList<String>(4);
}

私を助けてください。前もって感謝します

4

7 に答える 7

20

リストを返すには、アノテーションが付けられたコンテナーにラップし、@XmlRootElementそのコンテナーに としてアノテーションが付けられたフィールドとしてリストを与えるのが最善@XmlElementです。

そのようです:

@XmlRootElement
public class Container {
    @XmlElement
    public List yourlist;
}
于 2012-02-16T12:57:04.900 に答える
4

thisを参照してください。その JAXB は問題を引き起こしています。リストをアンマーシャリング/マーシャリングする方法がわかりません。

于 2012-02-16T12:51:18.867 に答える
0

ラッピングを回避するには、Jackson を使用できます。それを行う方法については、同様の質問に対する私の回答に従うことができます。

于 2014-04-24T08:24:57.870 に答える
-1

GenericEntity を使用してみてください。

Response.ok(new GenericEntity<List<String>>(yourCollectionOfStrings) {}).build();
于 2013-11-13T20:36:22.803 に答える
-1

この Maven 依存関係を追加します。

<init-param>
    <param-name>jaxrs.providers</param-name>
    <param-value>org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider</param-value>
</init-param>
于 2018-10-04T17:14:42.097 に答える