簡體   English   中英

使用CXF DOSGI從RESTful服務返回JSON

[英]Returning JSON from a RESTful service using CXF DOSGI

我有一個簡單的服務,使用JAX-RS注釋進行注釋,並包含@Produces("application/json")注釋。 我在注冊服務時設置了以下屬性(我正在使用DS,但這不重要):

service.exported.interfaces -> *
service.exported.configs    -> org.apache.cxf.rs
org.apache.cxf.rs.address   -> myURI

當我運行我的應用程序時,我可以點擊URL,但我的瀏覽器返回:

No message body writer has been found for response class MyClass.

我的OSGi控制台顯示:

Jan 11, 2012 2:29:48 PM org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor writeResponseErrorMessage
WARNING: No message body writer has been found for response class MyClass.

我閱讀了文檔並想到可能需要注冊JSON提供程序。 在May Activator中我添加了:

bundleContext.registerService(new String[] { "javax.ws.rs.ext.MessageBodyReader",
    "javax.ws.rs.ext.MessageBodyWriter" },
    new org.apache.cxf.jaxrs.provider.JSONProvider(), null);

但這沒有任何區別。

如何修復“沒有為響應類MyClass找到消息正文編寫器”。 錯誤信息?

沒有消息正文編寫器意味着您的json提供程序不了解如何封送您返回JSON的類。 如果您使用的是默認的JSONProvider,那么您使用的是Jackson,它使用JAXB注釋。 換句話說,您返回的類應該在類級別上具有@XmlRootElement批注。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM