首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MOXy NoMessageBodyWriterFoundFailure

MOXy NoMessageBodyWriterFoundFailure
EN

Stack Overflow用户
提问于 2012-12-22 14:28:02
回答 1查看 349关注 0票数 2

我正在尝试使用EclipseLink MOXy作为我的JAXB提供程序,但我仍然存在一些问题。

我已经将一个jaxb.properties文件放在与Error类相同的包中。尽管如此,在调用我的webservice时,仍然会出现以下错误:

错误500 org.jboss.resteasy.core.NoMessageBodyWriterFoundFailure:找不到响应对象的MessageBodyWriter类型:媒体类型的br.services.model.Error : application/xml;charset="UTF-8"

如果我在我的Error类中运行以下代码

代码语言:javascript
复制
public static void main(String[] args) throws JAXBException
{
    System.out.println(JAXBContext.newInstance(Error.class).getClass());
}

我会得到这个: org.eclipse.persistence.jaxb.JAXBContext类

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2012-12-23 13:15:40

备注:,我是EclipseLink JAXB (MOXy)的负责人,也是JAXB (JSR-222)专家组的成员。

定位eclipselink.jar

您需要确保eclipselink.jar位于以下位置(参见:服务器)

代码语言:javascript
复制
$JBOSS_HOME/server/default/lib

jaxb.properties

您是对的,jaxb.properties文件需要与域模型(Error类)位于同一个包中。您需要确保它有以下条目(请参阅:http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html):

代码语言:javascript
复制
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

EclipseLink版本

RESTEasy有可能依赖于一些专有的JAXB参考实现扩展。我们增加了对我们所知道的所有MOXy版本的支持,因此您需要确保您使用的是最新版本的EclipseLink。我建议使用EclipseLink 2.4.1,可以从下面的链接获得:

  • http://www.eclipse.org/eclipselink/downloads/

MessageBodyReader/MessageBodyWriter

有可能RESTEasy没有编写(足够好)来支持可插拔的JAXB实现。在这种情况下,您可以创建一个MessageBodyReader/MessageBodyWriter来利用MOXy。下面是我为使用MOXy作为JSON绑定提供程序而创建的一个示例,您可以使用它作为模型。

  • http://blog.bdoughan.com/2012/03/moxy-as-your-jax-rs-json-provider.html

正如MOXy附带了一个预构建的MessageBodyReader/MessageBodyWriter来启用JSON绑定一样(参见:MOXy作为您的JAX-RS JSON提供者- MOXyJsonProvider)。度假回来后,我将添加一个预构建的MessageBodyReader/MessageBodyWriter`,以使MOXy更容易成为RESTEasy环境的XML。

  • http://bugs.eclipse.org/397125
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14003640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档