Hello!

I am implementing a REST service with CXF and I want to have the following URL 
structure:

-  dog/34
- dog/current/34
- cat/34
- index.html

So I registered CXFServlet with url-pattern /*, but provided a 
static-resources-list:

        <servlet>
                <servlet-name>CXFServlet</servlet-name>
                
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
                <init-param>
                        <param-name>static-resources-list</param-name>
                        <param-value>/(\w)+.html</param-value>
                </init-param>
                <load-on-startup>1</load-on-startup>
        </servlet>

        <servlet-mapping>
                <servlet-name>CXFServlet</servlet-name>
                <url-pattern>/*</url-pattern>
        </servlet-mapping>

My service is a single class with
@Path("/")
public class AnimalService
{
        @GET
        @Path("/dog/current/{idnr}")
        public Response getCurrentBoneForDog(
        ...

The service works fine, I can reach index.html by http://server/app/index.html, 
but I would also like to get it with http://server/app
I tried to provide
        <welcome-file-list>
                <welcome-file>index.html</welcome-file>
        </welcome-file-list>

but this doesn't work either.

In the logs I find
o.apache.cxf.jaxrs.utils.JAXRSUtils - No operation matching request path 
"/app/" is found, Relative Path: /, HTTP Method: GET, ContentType: */*

Is it able to set a "default handler", so when no operation matching request 
path is set then it delegates to standard mechanism?
Is it possible to solve my requirement with CXF mechanism? The only thing I can 
think of is to provide two servlet mappings with "/dog/*" and /cat/*" which 
would mean that I also had to split my service class into two parts.

Kind regards,
Christian

Reply via email to