HI,

I have developed Rest Service using cxfrs component in 2.17.3. GET services
are working fine but however when call POST service and error 415 (
Unsupported Media Type ) is returned. We have defined Media Type (
application/json ) 

Error Logs:

[                          main] DefaultCamelContext            INFO  Apache
Camel 2.17.3 (CamelContext: camel-1) started in 1.150 seconds
[               qtp792782299-19] JAXRSUtils                     ERROR No
message body reader has been found for class
com.warid.sns.service.subscriptionNotification, ContentType:
application/json
[               qtp792782299-19] WebApplicationExceptionMapper  WARN 
javax.ws.rs.WebApplicationException: HTTP 415 Unsupported Media Type
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:1313)
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameter(JAXRSUtils.java:824)
        at
org.apache.cxf.jaxrs.utils.JAXRSUtils.processParameters(JAXRSUtils.java:787)
        at
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor.processRequest(JAXRSInInterceptor.java:212)


Route:

from("cxfrs://http://localhost:9090/notify?resourceClasses=com.warid.sns.service.ServiceNotificationResource&bindingStyle=SimpleConsumer";)
                        .log( "The message body contains ${body}" )
                        .log( "The message body contains ${headers}" )
                        .process(new ServiceNotificationProcessor())
                        .marshal().json(JsonLibrary.Jackson);

ResourceClass:

@Path("/")
public class ServiceNotificationResource {
        
         @Context
         private UriInfo uriInfo;
         
         public ServiceNotificationResource()
         {}
        
         @POST
         @Path("/notifysubscription")
         @Consumes(MediaType.APPLICATION_JSON)
         public Response createSubscription(subscriptionNotification sn) {
                 return  Response.status(Response.Status.NO_CONTENT).build();
         }
         
         @GET
         @Path("/getSubscription")
         @Produces(MediaType.APPLICATION_JSON)
         public subscriptionNotification getSubscription() {
                 subscriptionNotification sn = new subscriptionNotification();
                 sn.setApplicationName("1");
                 sn.setSubscriberAddress("tel:12345678");
                 sn.setApplicationName("news");
                 sn.setOperation("sub");
                 return sn;
         }
}

Processor:

Message inMessage = exchange.getIn();
                                String operationName = 
inMessage.getHeader(CxfConstants.OPERATION_NAME,
String.class);
                                System.out.println("operation name 
==="+operationName);
                        
                                if 
("getSubscription".equalsIgnoreCase(operationName)) {
                                        subscriptionNotification sn = new 
subscriptionNotification();
                                        sn.setApplicationName("1");
                                        sn.setSubscriberAddress("tel:12345678");
                                        sn.setApplicationName("news");
                                        sn.setOperation("sub");         
                                        exchange.getOut().setBody(sn);
                                } else {
                                        
                                        exchange.getOut().setBody(
Response.status(Response.Status.NO_CONTENT).build() );
                                }





--
View this message in context: 
http://camel.465427.n5.nabble.com/ERROR-No-message-body-reader-has-been-found-for-class-ContentType-application-json-in-CXF-JAXRS-2-173-tp5786940.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to