My "json-from-jaxb" converted sample (http://www.jroller.com/gmazza/entry/jersey_samples_on_cxf) might be something useful for you to look at.

Regards,
Glen

On 09/07/2012 11:49 PM, 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?)

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.


--
Glen Mazza
Talend Community Coders - coders.talend.com
blog: www.jroller.com/gmazza

Reply via email to