Hi, On 08/09/12 04:49, ibory0205 wrote:
Sorry not good at English. I use cxf for the first time.Refer to the various sample, I tried to create a simple REST web service with apache cxf. I succeed when @Produces tag set "application/xml". but failed when @Produces tag set "application/json" with [No message body writer has been found for response class Document] message. result is below ------------------------------------------------------------------------------------- [when @Produces("application/xml")] <document> <name>aaa</name> </document> [when @Produces("application/json")] No message body writer has been found for response class Document. ------------------------------------------------------------------------------------- my code is below. ------------------------------------------------------------------------------------- [Resource Interface class] @Path("/document") public interface DocumentResource { @GET @Path("/name/{name}") @Produces("application/json") Document getDocument(@PathParam("name") String name); } [Implement class] @Component public class DocumentResourceImpl implements DocumentResource { public Document getDocument(String name) { Document doc = new Document(); doc.setName(name); return doc; } } [Document class] @XmlRootElement public class Document { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } [applicationContext.xml] <beans ...> <import resource="classpath:META-INF/cxf/cxf.xml" /> <context:component-scan base-package="jp.sample.jaxrs" /> <jaxrs:server id="documentResource" address="/"> <jaxrs:serviceBeans> <ref bean="documentResourceImpl" /> </jaxrs:serviceBeans> </jaxrs:server> </beans> [pom.xml] <project ...> <modelVersion>4.0.0</modelVersion> <groupId>jp.example.webapp</groupId> <artifactId>jax-rs</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>jax-rs Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxrs</artifactId> <version>2.6.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-bundle-jaxrs</artifactId> <version>2.6.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>3.0.7.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> </dependencies> <build> <finalName>jax-rs</finalName> </build> </project> ------------------------------------------------------------------------------------- What is the cause of this problem(code? configuration? library?)
The only difference between CXF 2.5.1 and CXF 2.6.2 is that the default JSON provider is in the different package in 2.6.2, org.apache.cxf.jaxrs.provider.json.JSONProvider.
We have JAXB-to-JSON working in 2.6.2 too, it has to be something with the configuration - you already have a Maven based project, can you please zip the project and attach to JIRA ? I can have a look then
Thanks, Sergey
Thank you. -- View this message in context: http://cxf.547215.n5.nabble.com/No-message-body-writer-has-been-found-for-response-class-is-returned-only-application-json-tp5713730.html Sent from the cxf-user mailing list archive at Nabble.com.
-- Sergey Beryozkin Talend Community Coders http://coders.talend.com/ Blog: http://sberyozkin.blogspot.com
