Hi,

I have spent 2 days on this so any ideas on how to debug this further would
be appreciated.

I'm using JDK 1.7, Spring 3.2, and CXF 2.7.3. With Spring I'm using the
Java config (not xml).

I keep getting the error
WARNING: Can't find the the request for
http://localhost:8080/rest/api/people's Observer

I think the error is related to some interaction between Tomcat and the
CXFServlet. I had this working for a couple of weeks, so I suspect it has
something to do with the order of the classpath and not the configuration.

I found this project which I can use to reproduce the problem. It works
correctly with the embedded Jetty server, but NOT with Tomcat.

git clone -b tomcat-embedded https://github.com/reta/spring-one-jar.git
mvn package
java -jar target/spring-one-jar-0.0.1-SNAPSHOT.one-jar.jar

This fails with:
curl http://localhost:8080/rest/api/people?page=2

But the same procedure with Jetty works.
git clone -b jetty-embedded https://github.com/reta/spring-one-jar.git


With Tomcat the application path (@ApplicationPath) is correctly printed,
so I think it must be related to the CXFServlet and the url-pattern.
"INFO: Setting the server's publish address to be /api"

       @Bean
        public Server jaxRsServer() {
                JAXRSServerFactoryBean factory =
RuntimeDelegate.getInstance().createEndpoint( jaxRsApiApplication(),
JAXRSServerFactoryBean.class );
                factory.setServiceBeans( Arrays.< Object >asList(
peopleRestService() ) );
                factory.setAddress( "/" + factory.getAddress() );
                factory.setProviders( Arrays.< Object >asList(
jsonProvider() ) );
                return factory.create();
        }

Thanks,
Al

Reply via email to