【问题标题】:Could not find JAXBContextFinder for media type: application/json找不到媒体类型的 JAXBContextFinder:application/json
【发布时间】:2011-02-22 16:06:44
【问题描述】:

我有开发resteay+ejb+json的问题。使用 Jboss-5.1.0.GA。我从 resteasy-jaxrs 获得示例并适用于我的案例。 在 \jboss-5.1.0.GA\server\default\lib\ 中添加了 jars(这问我 jboss。在其他情况下捕获异常 - 找不到类)

resteasy-jaxb-provider-1.2.1.GA jaxrs-api-2.0.1.GA resteasy-jaxrs-2.0.1.GA

获取异常

    09:43:15,502 ERROR [SynchronousDispatcher:error] Failed executing GET /basic
    org.jboss.resteasy.plugins.providers.jaxb.JAXBMarshalException: Could not find JAXBContextFinder for media type: application/json    
   at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.findJAXBContext(AbstractJAXBProvider.java:50)
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.getMarshaller(AbstractJAXBProvider.java:127)
    at org.jboss.resteasy.plugins.providers.jaxb.AbstractJAXBProvider.writeTo(AbstractJAXBProvider.java:103)

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxrs</artifactId>
    <version>2.0.0.GA</version>
</dependency>
<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jaxb-provider</artifactId>
    <version>1.1.GA</version>
</dependency>

@Stateless
public class SimpleResourceBean implements SimpleResource {

    @Override
    public Book getBasic() {
        System.out.println("getBasic()");
        return new Book("AAA", "CCC", "SSSS");
    }  
}

@Path("/")
public interface SimpleResource {

    @GET
    @Path("basic")
   // @Produces("text/plain")
    @Produces("application/json")
    Book getBasic();

}

@BadgerFish
@XmlRootElement(name = "book")
public class Book
{   
   private String author;
   private String ISBN;
   private String title;

   public Book()
   {
   }

   public Book(String author, String ISBN, String title)
   {
      this.author = author;
      this.ISBN = ISBN;
      this.title = title;
   }

   @XmlElement
   public String getAuthor()
   {
      return author;
   }

   public void setAuthor(String author)
   {
      this.author = author;
   }

   @XmlElement
   public String getISBN()
   {
      return ISBN;
   }

   public void setISBN(String ISBN)
   {
      this.ISBN = ISBN;
   }

   @XmlAttribute
   public String getTitle()
   {
      return title;
   }

   public void setTitle(String title)
   {
      this.title = title;
   }
}

请有任何建议。 此致 阿尔乔姆

【问题讨论】:

    标签: json jaxb ejb resteasy


    【解决方案1】:

    RestEasy 不再在 JAR 中包含 JSON 支持。 http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide/html_single/index.html#JAXB_+_JSON_provider

    您需要从http://jettison.codehaus.org/ 获取 JAX-B JSON 库

    【讨论】:

      【解决方案2】:

      请尝试为您收到错误的方法添加@DoNotUseJAXBProvider。这对我有用。但这是针对 text/html http://docs.jboss.com/seam/3/rest/snapshot/reference/en-US/html_single/中提到了这一点

      【讨论】:

        【解决方案3】:

        http://jettison.codehaus.org/ 不适用于我,因为本网站中的 .jar 不适用于 resteasy。

        你必须下载 resteasy-jettison-provider.jar 因为这个 jar 实现了 resteasy 的 jettison(为我工作): http://www.java2s.com/Code/Jar/r/Downloadresteasyjettisonproviderjar.htm

        【讨论】:

          【解决方案4】:

          我使用了杰克逊提供者

              <dependency>
                  <groupId>org.jboss.resteasy</groupId>
                  <artifactId>resteasy-jackson-provider</artifactId>
                  <version>2.0.1.GA</version>
              </dependency>
          

          并解决了问题。

          注意resteasy-jackson-provider依赖于resteasy-jettison-provider

          【讨论】:

            【解决方案5】:

            添加以下 jar 解决了我的问题:

            <dependency>
                    <groupId>org.jboss.resteasy</groupId>
                    <artifactId>resteasy-jettison-provider</artifactId>
                    <version>2.2.0.GA</version>
            </dependency>   
            

            【讨论】:

              猜你喜欢
              • 2015-12-13
              • 2012-08-24
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-21
              • 2013-10-06
              • 2014-06-29
              • 2014-06-19
              相关资源
              最近更新 更多