簡體   English   中英

RESTEasy - 簡單的字符串數組/集合編組

[英]RESTEasy - simple string array/collection marshalling

是否有一種簡單的方法可以在RESTEasy中編組和解組String []或List?

我的代碼示例:

@GET
@Path("/getSomething")
@Produces(MediaType.APPLICATION_JSON)
public List<String> getSomeData() {
    return Arrays.asList("a","b","c","d");

}

上面給我一個例外:

Could not find MessageBodyWriter for response object 
of type: java.util.Arrays$ArrayList of media type: application/json

您可能需要像這樣包裝它:

public List<JaxbString> getList(){
     List<JaxbString> ret= new ArrayList<JaxbString>();
     List<String> list = Array.asList("a","b","c");
          for(String s:list){
              ret.add(new JaxbString(s));
          }
     return ret;
}

@XmlRootElement
public class JaxbString {

    private String value;

    public JaxbString(){}

    public JaxbString(String v){
        this.setValue(v);
    }

    public void setValue(String value) {
        this.value = value;
    }

    @XmlElement
    public String getValue() {
        return value;
    }

}

我對XML和JSON都有同樣的問題。 尚未找到解決方案,但我認為它與JAXB有關。

事實證明,問題是JAXB已經附帶JDK6並且JBoss的依賴性不正確。 他們應該為它找到另一種解決方案,即現在如何完成。 你怎么解決這個問題:

<!-- JAXB Reasteasy support -->
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxb-provider</artifactId>
<version>1.2.1.GA</version>
<scope>compile</scope>
<exclusions>
    <exclusion>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
    </exclusion>
    <exclusion>
        <groupId>com.sun.xml.stream</groupId>
        <artifactId>sjsxp</artifactId>
    </exclusion>
</exclusions>

您將獲得RESTEASY JAXB提供程序,但不能獲取maven的JAXB文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM