RESTEasy example involving ContentHandler creation not working with CXF's 
JAX-RS implementation
-----------------------------------------------------------------------------------------------

                 Key: CXF-3247
                 URL: https://issues.apache.org/jira/browse/CXF-3247
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 2.3.2
            Reporter: Glen Mazza


Chapter 19, Example 6_02 (page 230) from Bill Burke's RESTful Java with JAX-RS 
book is working with RESTEasy but not CXF (I'm using 2.3.2-SNAPSHOT).  This 
example is freely available in the RESTEasy download[1].

This example creates a new content handler for exchanging Java objects directly 
using REST.

Steps to duplicate:

1.) After downloading and extracting RESTEasy and navigating to this folder:  
resteasy-jaxrs-2.1.0.GA/examples/oreilly-workbook/ex06_2 , type mvn clean 
install.  You'll see a before/after response using the RESTEasy library:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.restfully.shop.test.CustomerResourceTest
*** Create a new Customer ***
15.01.2011 17:21:14 org.jboss.resteasy.spi.ResteasyDeployment 
INFO: Deploying javax.ws.rs.core.Application: class 
com.restfully.shop.services.ShoppingApplication
15.01.2011 17:21:14 org.jboss.resteasy.spi.ResteasyDeployment 
INFO: Adding singleton resource com.restfully.shop.services.CustomerResource 
from Application javax.ws.rs.core.Application
Created customer 1
Location: http://localhost:9095/customers/1
*** GET Created Customer **
Content-Type: application/x-java-serialized-object
Customer{id=1, firstName='Bill', lastName='Burke', street='256 Clarendon 
Street', city='Boston', state='MA', zip='02115', country='USA'}
**** After Update ***
Content-Type: application/x-java-serialized-object
Customer{id=1, firstName='William', lastName='Burke', street='256 Clarendon 
Street', city='Boston', state='MA', zip='02115', country='USA'}
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.344 sec


2.) Convert the sample to using JAX-RS by making the following two changes 
(I've used these two steps with success in nearly all the other examples up to 
this one):

-- Switching the servlet in the web.xml:

        
<servlet-class>org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet</servlet-class>

        <!--servlet-class>

            org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher

        </servlet-class-->



-- Switching the dependency in the pom.xml:

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxrs</artifactId>
            <version>2.3.2-SNAPSHOT</version>
        </dependency>
        <!--dependency>

            <groupId>org.jboss.resteasy</groupId>

            <artifactId>resteasy-jaxrs</artifactId>

            <version>2.1.0.GA</version>

        </dependency-->


3.) Running mvn clean install again will return this error:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.restfully.shop.test.CustomerResourceTest
*** Create a new Customer ***
15.01.2011 17:22:52 org.apache.cxf.transport.servlet.CXFNonSpringServlet 
loadBusNoConfig
INFO: Load the bus without application context
15.01.2011 17:22:52 
org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.apache.cxf.bus.spring.BusApplicationContext@23b561a2: 
startup date [Sat Jan 15 17:22:52 EST 2011]; root of context hierarchy
15.01.2011 17:22:52 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource 
[META-INF/cxf/cxf.xml]
15.01.2011 17:22:52 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource 
[META-INF/cxf/cxf-extension-jaxrs-binding.xml]
15.01.2011 17:22:52 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource 
[META-INF/cxf/cxf-extension-xml.xml]
15.01.2011 17:22:52 
org.springframework.beans.factory.xml.XmlBeanDefinitionReader 
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource 
[META-INF/cxf/cxf-extension-http.xml]
15.01.2011 17:22:52 
org.springframework.beans.factory.support.DefaultListableBeanFactory 
preInstantiateSingletons
INFO: Pre-instantiating singletons in 
org.springframework.beans.factory.support.DefaultListableBeanFactory@2f78743b: 
defining beans 
[cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.service.factory.FactoryBeanListenerManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory];
 root of factory hierarchy
15.01.2011 17:22:53 org.apache.cxf.transport.servlet.AbstractCXFServlet 
replaceDestinationFactory
INFO: Replaced the http destination factory with servlet transport factory
15.01.2011 17:22:53 org.apache.cxf.jaxrs.utils.ResourceUtils 
checkMethodDispatcher
WARNUNG: No resource methods have been found for resource class 
com.restfully.shop.services.JavaMarshaller
15.01.2011 17:22:53 org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be /
15.01.2011 17:22:53 org.apache.cxf.jaxrs.utils.JAXRSUtils readFromMessageBody
WARNUNG: No message body reader has been found for request class Customer, 
ContentType : application/x-java-serialized-object.
15.01.2011 17:22:53 org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper 
toResponse
WARNUNG: WebApplicationException has been caught : no cause is available
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.919 sec <<< 
FAILURE!

Results :

Failed tests: 
  testCustomerResource(com.restfully.shop.test.CustomerResourceTest)

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[1] http://sourceforge.net/projects/resteasy/files/Resteasy%20JAX-RS/

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to