the root cause should be the path,  /webproj//  remove the extra slash.

Neal

> 在 2016年8月3日,00:21,KARR, DAVID <[email protected]> 写道:
> 
> After years away from CXF and JAX-RS (and other related things), I'm going to 
> be building a small JAX-RS service using CXF and Spring.
> 
> I'm basing what I have so far on what I read in the docs and the old source 
> code I found for my old service.  I'm just building a dummy skeleton right 
> now, which I will clone for the real service.
> 
> When I just start up the Tomcat instance with the WAR (I haven't even 
> directly made a REST service call yet), I see the following in the console:
> -------------------
> Aug 02, 2016 9:06:24 AM org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor 
> processRequest
> WARNING: No root resource matching request path /webproj// has been found, 
> Relative Path: /. Please enable FINE/TRACE log level for more details.
> Aug 02, 2016 9:06:24 AM 
> org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper toResponse
> WARNING: javax.ws.rs.NotFoundException: HTTP 404 Not Found
> at 
> org.apache.cxf.jaxrs.utils.SpecExceptions.toNotFoundException(SpecExceptions.java:89)
> ---------------------
> 
> I have a project named "webproj", and that's also the "id" of my 
> "jaxrs:server" in my Spring context.  The "address" is just "/srv".  The 
> @Path in the single controller is just "/webproj", and the one controller 
> method has a @Path of "service/{id}/{name}", and the params are mapped to 
> formal params in the method.  Obviously, some of the path components here are 
> stupid, but I'm just trying to get it running.
> 
> The relevant part of my web.xml would be the following:
> -------------------
> <context-param>
>     <param-name>contextConfigLocation</param-name>
>     <param-value>WEB-INF/applicationContext.xml</param-value>
> </context-param>
> <listener>
>     
> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
> </listener>
> <servlet>
>     <servlet-name>CXFServlet</servlet-name>
>     <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
>     <load-on-startup>1</load-on-startup>
> </servlet>
> <servlet-mapping>
>     <servlet-name>CXFServlet</servlet-name>
>     <url-pattern>/*</url-pattern>
> </servlet-mapping>
> --------------------
> 
> Here's the relevant part of my skeletal application context:
> ---------------------
> <import resource="classpath:META-INF/cxf/cxf.xml" />
> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
> 
> <jaxrs:server id="webproj" address="/srv">
>     <jaxrs:serviceBeans>
>         <ref bean="webproj"/>
>     </jaxrs:serviceBeans>
>     <jaxrs:extensionMappings>
>         <entry key="json" value="application/json" />
>         <entry key="xml" value="application/xml" />
>     </jaxrs:extensionMappings>
> </jaxrs:server>
> 
> <bean id="webproj" class="com.att.webproj.services.WebProjController"></bean>
> --------------------
> 
> (I briefly noticed a bug in how Eclipse created the Spring context, as it 
> defined the "http://cxf.apache.org/jaxrs"; namespace to be mapped to the 
> schema named "http://cxf.apache.org/schemas/jaxrs-common.xsd";.  When I 
> removed "-common", it fixed that particular problem.)
> 
> I imagine there are some principles that I've forgotten.  Please lead me back 
> to the path.
> 
> 


Reply via email to