2010-05-20 9 views
3

Есть ли простой способ для сортировки и сортировки строк [] или списка в RESTEasy?RESTEasy - простая строковая матрица/коллекция marshalling

Мой пример кода:

@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 

ответ

1

У меня такая же проблема, как с 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, но не файлы JAXB от мавена.

4

Вам может понадобиться, чтобы обернуть это так:

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; 
    } 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^