Hi!
I'm trying to develop RESTful web services with CXF version 2.1.1 using the jax-rs style.

1/ I've created a java interface (my.package.AdminService) that describes the service and got the annotations following the example given there : http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html Declaring : @Path("/rest/Admin/") on the interface and with a method like this :
@GET
@Path("/validity/{engine-key}")
public boolean isValidEngineID(@PathParam("engine-key") Long engineID);

I've created a class (my.package.AdminServiceImpl) that implements this interface. Note that my java interface has annotations relative to soap configuration too because I want my service to be accessible both in a soap or REST way.
And, for now, I use it in a soap way and it works perfectly. :-)

2/ In order to build my webapp, I use Maven2 and I've declared the following CXF dependencies :

<dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-core</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-frontend-simple</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-frontend-jaxws</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-frontend-jaxrs</artifactId>
       <version>${cxf.version}</version>
</dependency> <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-databinding-aegis</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-transports-local</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-transports-http</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-transports-jms</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-rt-management</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>org.apache.cxf</groupId>
       <artifactId>cxf-common-utilities</artifactId>
       <version>${cxf.version}</version>
   </dependency>
   <dependency>
       <groupId>javax.ws.rs</groupId>
       <artifactId>jsr311-api</artifactId>
       <version>${jsr311.version}</version>
   </dependency>
<dependency> <groupId>ws-commons</groupId> <artifactId>axiom</artifactId> <version>1.1.1</version> </dependency>
   <dependency>
       <groupId>org.apache.abdera</groupId>
       <artifactId>abdera-client</artifactId>
       <version>0.4.0-incubating</version>
   </dependency>
   <dependency>
       <groupId>org.apache.abdera</groupId>
       <artifactId>abdera-server</artifactId>
       <version>0.4.0-incubating</version>
   </dependency>
   <dependency>
       <groupId>org.apache.abdera</groupId>
       <artifactId>abdera-spring</artifactId>
       <version>0.4.0-incubating</version>
   </dependency>

3/ In order to deploy the service, I use a Spring configuration file beans.xml that contains both declarations (for soap and Rest) :

<jaxws:endpoint
     id="admin"
     implementor="my.package.AdminServiceImpl"
     address="/Admin" />

<jaxrs:server id="restfulAminService" address="/">
       <jaxrs:serviceBeans>
         <ref bean="RestAminService" />
       </jaxrs:serviceBeans>
   </jaxrs:server>
   <bean id="RestAminService" class="my.package.AdminServiceImpl" />

4/ While deploying on Tomcat 6 server, it seems to be ok :
15 oct. 2008 11:52:59 org.apache.cxf.endpoint.ServerImpl initDestination
INFO: Setting the server's publish address to be /
15 oct. 2008 11:52:59 org.apache.cxf.transport.servlet.CXFServlet loadSpringBus
INFO: Load the bus with application context
15 oct. 2008 11:52:59 org.apache.cxf.bus.spring.BusApplicationContext getConfigResources
INFO: No cxf.xml configuration file detected, relying on defaults.

5/ When trying to send a request, I've this error : No operation matching request path /rest/Admin/validity/34576549 is found.

I'm sure I've done something wrong but i don't see what... Could you help me, please?
Thanks in advance.

Reply via email to