我有开发resteay + ejb + json的问题。使用Jboss-5.1.0.GA。我从resteasy-jaxrs得到了例子并且适合我的情况。 在jboss-5.1.0.GA \ server \ default \ lib \
中添加了jar(这问我jboss。在其他情况下catch异常 - 找不到类)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;
}
}
请,任何建议。 最好的祝福 阿尔乔姆
答案 0 :(得分:5)
RestEasy不再包含JAR中的JSON支持。 http://docs.jboss.org/resteasy/docs/2.0.0.GA/userguide/html_single/index.html#JAXB_+_JSON_provider
获取JAX-B JSON库答案 1 :(得分:1)
请尝试将@DoNotUseJAXBProvider包含在您收到错误的方法中。这对我有用。但这是针对text / html的 这在http://docs.jboss.com/seam/3/rest/snapshot/reference/en-US/html_single/
中提到答案 2 :(得分:1)
http://jettison.codehaus.org/对我不起作用,因为本网站中的.jar无法使用resteasy。
你必须下载resteasy-jettison-provider.jar,因为这个jar实现了对resteasy的抛弃(为我工作): http://www.java2s.com/Code/Jar/r/Downloadresteasyjettisonproviderjar.htm
答案 3 :(得分:0)
我使用过杰克逊提供商
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<version>2.0.1.GA</version>
</dependency>
并解决了问题。
请注意,resteasy-jackson-provider取决于resteasy-jettison-provider
答案 4 :(得分:0)
添加以下jar解决了我的问题:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
<version>2.2.0.GA</version>
</dependency>