【问题标题】:RESTEasy - simple string array/collection marshallingRESTEasy - 简单的字符串数组/集合编组
【发布时间】:2011-02-21 18:04:25
【问题描述】:

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

【问题讨论】:

    标签: java jboss jax-rs resteasy


    【解决方案1】:

    你可能需要像这样包装它:

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

    【讨论】:

      【解决方案2】:

      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 文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-07
        • 2012-09-16
        • 2014-08-11
        相关资源
        最近更新 更多