Re: jax-rs URLs not working (was: Base class members not serializing / deserializing)

2008-04-07 Thread Sergey Beryozkin
Hi

As far as I know annotations at the interface level will only supported in the 
0.7 version (it's mandated in the corresponding version of the spec), and only 
method-level annotations will be inherited (I'll need to confirm it), Jersey 
does it on the current trunk (which is corresponds to the soon to be released 
stable 0.7 jaxrs-api).
Brad, try to put the annotations on the actual root resource class, just to see 
that's working. Then at a later stage you may want to put the annotations on 
the superclass, but first try from the root resource class...

Cheers, Sergey


 Maybe the annotations have to go in the implementation class 
 instead/as well? I didn't use an interface - just an instantiatable
 class (with method bodies).
 
 Apart from broken POST data, thats the only other thing I can think of.
 
 Doug
 
 
 On Mon, 7 Apr 2008, Brad O'Hearne wrote:
 Doug,

 Thanks for the reply. I'm still getting the same errors, going to show
 you exactly what happens in my implementation. Here is my web.xml:

 !DOCTYPE web-app
  PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN
  http://java.sun.com/dtd/web-app_2_3.dtd;
 web-app
 context-param
 param-namecontextConfigLocation/param-name
 param-valueWEB-INF/beans.xml/param-value
 /context-param
 listener
 listener-class
 org.springframework.web.context.ContextLoaderListener
 /listener-class
 /listener
 servlet
 servlet-nameCXFServlet/servlet-name
 display-nameCXF Servlet/display-name
 servlet-class
 org.apache.cxf.transport.servlet.CXFServlet
 /servlet-class
 load-on-startup1/load-on-startup
 /servlet
 servlet-mapping
 servlet-nameCXFServlet/servlet-name
 url-pattern/services/*/url-pattern
 /servlet-mapping
 /web-app

 Here is my beans.xml:

 ?xml version=1.0 encoding=UTF-8?
 beans xmlns=http://www.springframework.org/schema/beans;
 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
 xmlns:jaxrs=http://cxf.apache.org/jaxrs;
 xsi:schemaLocation=
 http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd
 http://cxf.apache.org/jaxrs
 http://cxf.apache.org/schemas/jaxrs.xsd;
 import resource=classpath:META-INF/cxf/cxf.xml /
 import
 resource=classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml /
 import resource=classpath:META-INF/cxf/cxf-servlet.xml /
 jaxrs:server id=userService address=/
 jaxrs:serviceBeans
 bean
 class=com.brad.UserService /
 /jaxrs:serviceBeans
 /jaxrs:server
 /beans

 Here is my service interface (which is implemented by the UserService
 class referenced in beans.xml):

 @Path(/UserService)
 public interface IUserService {
  @POST
  @Path(authenticate)
  @ConsumeMime(application/xml)
  @ProduceMime(application/xml)
  AuthenticateResponse authenticate(AuthenticateRequest request);
 }

 Tomcat loads cleanly (as far as I can tell -- no exceptions). When I
 try to access this service with an xml payload and the following URL: 
 http://localhost:8080/MyWebApp/services/UserService/authenticate

 I get the following exception on the server:

 Apr 6, 2008 7:38:46 AM
 org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor handleMessage
 SEVERE: No operation found for path: /UserService/authenticate/,
 contentType: application/xml, Accept contentType: */*
 Apr 6, 2008 7:38:46 AM org.apache.cxf.phase.PhaseInterceptorChain
 doIntercept
 INFO: Interceptor has thrown exception, unwinding now
 org.apache.cxf.interceptor.Fault: .No operation matching request path /
 UserService/authenticate/ is found, ContentType : application/xml,
 Accept : */*.
 at
 org
 .apache
 .cxf
 .jaxrs
 .interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:
 120)
 at
 org
 .apache
 .cxf
 .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
 at
 org
 .apache
 .cxf
 .transport
 .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
 at
 org
 .apache
 .cxf
 .transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
 at
 org
 .apache
 .cxf
 .transport
 .servlet.ServletController.invokeDestination(ServletController.java:214)
 at
 org
 .apache
 .cxf.transport.servlet.ServletController.invoke(ServletController.java:
 113)
 at
 org
 .apache
 .cxf
 .transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:
 170)
 at
 org
 .apache
 .cxf
 .transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:
 148)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 at
 org
 .apache
 .catalina
 .core
 .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
 290)
 at
 org
 .apache
 .catalina
 .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at
 org
 .apache
 .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
 233)
 at
 org
 .apache
 .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
 175)
 at
 org
 .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
 128)
 at
 org

Re: jax-rs URLs not working (was: Base class members not serializing / deserializing)

2008-04-07 Thread Brad O'Hearne

Sergey,

It appears that putting the annotations on the implementation class  
(rather than the interface) resolved the path issues. You are right,  
apparently interface annotations are not supported. I really hope that  
these are supported in the future. However, I am still not out of the  
woods. The deserialization of parameters still is not working, and I  
am using the same XML payload that worked using jaxws. It seems to be  
choking on the default namespace in my XML. Here's the method getting  
called:


@POST
@Path(authenticate)
@ConsumeMime(application/xml)
@ProduceMime(application/xml)
public AuthenticateResponse authenticate(AuthenticateRequest  
request) {


and here's the XML being sent on the HTTP request:

?xml version=1.0 encoding=utf-8?
AuthenticateRequest xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 
 xmlns:xsd=http://www.w3.org/2001/XMLSchema; password=password  
uid=username xmlns=http://us.service.securenow.whitenoise.com/; /


Two things are happening. First, an exception gets thrown (which is  
shown below), and second, I do hit a breakpoint inside my authenticate  
method, but the request parameter is null. Here's the exception in the  
Tomcat logs:



javax.xml.bind.UnmarshalException: unexpected element (uri:http://us.service.securenow.whitenoise.com/ 
, local:AuthenticateRequest). Expected elements are  
{}AuthenticateRequest
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext.handleEvent(UnmarshallingContext.java:603)
	at  
com 
.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java: 
244)
	at  
com 
.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java: 
239)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java: 
116)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext 
$DefaultRootLoader.childElement(UnmarshallingContext.java:1009)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext._startElement(UnmarshallingContext.java:446)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext.startElement(UnmarshallingContext.java:427)
	at  
com 
.sun 
.xml 
.bind 
.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java: 
137)
	at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown  
Source)
	at  
org 
.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown  
Source)
	at  
org 
.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown  
Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl 
$NSContentDispatcher.scanRootElementHook(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl 
$FragmentContentDispatcher.dispatch(Unknown Source)
	at  
org 
.apache 
.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown  
Source)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java: 
184)
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown  
Source)
	at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown  
Source)
	at  
org 
.apache 
.cxf 
.jaxrs.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java: 
62)
	at  
org.apache.cxf.jaxrs.JAXRSUtils.readFromMessageBody(JAXRSUtils.java:495)
	at org.apache.cxf.jaxrs.JAXRSUtils.processParameter(JAXRSUtils.java: 
312)
	at org.apache.cxf.jaxrs.JAXRSUtils.processParameters(JAXRSUtils.java: 
287)
	at  
org 
.apache 
.cxf 
.jaxrs 
.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java: 
133)
	at  
org 
.apache 
.cxf 
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
	at  
org 
.apache 
.cxf 
.transport 
.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
	at  
org 
.apache 
.cxf 
.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
	at  
org 
.apache 
.cxf 
.transport 
.servlet.ServletController.invokeDestination(ServletController.java:214)
	at  
org 
.apache 
.cxf.transport.servlet.ServletController.invoke(ServletController.java: 
113)
	at  
org 
.apache 
.cxf 
.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java: 
170)
	at  
org 
.apache 
.cxf 
.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java: 
148)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at  
org 
.apache 
.catalina 
.core 

Re: jax-rs URLs not working (was: Base class members not serializing / deserializing)

2008-04-07 Thread Brad O'Hearne
Never mind on this.got it all worked out now. THANK YOU big time  
to the gents copied (and Daniel) for your advice. It would be great to  
get some of this stuff in a doc somewhere. Here was my winning formula:


- Java 1.6.x
- CXF 2.1-incubator-snapshot
- Do not annotate interfaces, but implementation classes only.
- Jax-RS (0.6 for the api)
- annotate all parameter and return types with explicit @XmlType,  
@XmlRootElement, and explicit namespaces


Everything appears to be working now. I still have some enums to get  
straight, but it looks like I'm out of the woods. Thanks again for  
your help guys.


Brad

On Apr 7, 2008, at 12:07 PM, Brad O'Hearne wrote:


Sergey,

It appears that putting the annotations on the implementation class  
(rather than the interface) resolved the path issues. You are right,  
apparently interface annotations are not supported. I really hope  
that these are supported in the future. However, I am still not out  
of the woods. The deserialization of parameters still is not  
working, and I am using the same XML payload that worked using  
jaxws. It seems to be choking on the default namespace in my XML.  
Here's the method getting called:


   @POST
   @Path(authenticate)
   @ConsumeMime(application/xml)
   @ProduceMime(application/xml)
   public AuthenticateResponse authenticate(AuthenticateRequest  
request) {


and here's the XML being sent on the HTTP request:

?xml version=1.0 encoding=utf-8?
AuthenticateRequest xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance 
 xmlns:xsd=http://www.w3.org/2001/XMLSchema; password=password  
uid=username xmlns=http://us.service.securenow.whitenoise.com/; /


Two things are happening. First, an exception gets thrown (which is  
shown below), and second, I do hit a breakpoint inside my  
authenticate method, but the request parameter is null. Here's the  
exception in the Tomcat logs:



javax.xml.bind.UnmarshalException: unexpected element (uri:http://us.service.securenow.whitenoise.com/ 
, local:AuthenticateRequest). Expected elements are  
{}AuthenticateRequest
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext.handleEvent(UnmarshallingContext.java:603)
	at  
com 
.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java: 
244)
	at  
com 
.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java: 
239)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:116)
	at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext 
$DefaultRootLoader.childElement(UnmarshallingContext.java:1009)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext._startElement(UnmarshallingContext.java:446)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller 
.UnmarshallingContext.startElement(UnmarshallingContext.java:427)
	at  
com 
.sun 
.xml 
.bind 
.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java: 
137)
	at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown  
Source)
	at  
org 
.apache 
.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
	at  
org 
.apache 
.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
	at org.apache.xerces.impl.XMLNSDocumentScannerImpl 
$NSContentDispatcher.scanRootElementHook(Unknown Source)
	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl 
$FragmentContentDispatcher.dispatch(Unknown Source)
	at  
org 
.apache 
.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown  
Source)

at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown  
Source)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:211)
	at  
com 
.sun 
.xml 
.bind 
.v2 
.runtime 
.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:184)
	at  
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown  
Source)
	at  
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown  
Source)
	at  
org 
.apache 
.cxf 
.jaxrs 
.provider.JAXBElementProvider.readFrom(JAXBElementProvider.java:62)
	at  
org.apache.cxf.jaxrs.JAXRSUtils.readFromMessageBody(JAXRSUtils.java: 
495)
	at org.apache.cxf.jaxrs.JAXRSUtils.processParameter(JAXRSUtils.java: 
312)
	at  
org.apache.cxf.jaxrs.JAXRSUtils.processParameters(JAXRSUtils.java:287)
	at  
org 
.apache 
.cxf 
.jaxrs 
.interceptor 
.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:133)
	at  
org 
.apache 
.cxf 
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java: 
220)
	at  
org 
.apache 
.cxf 
.transport 
.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
	at  
org 

jax-rs URLs not working (was: Base class members not serializing / deserializing)

2008-04-06 Thread Brad O'Hearne

Doug,

Thanks for the reply. I'm still getting the same errors, going to show  
you exactly what happens in my implementation. Here is my web.xml:


!DOCTYPE web-app
PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN
http://java.sun.com/dtd/web-app_2_3.dtd;
web-app
context-param
param-namecontextConfigLocation/param-name
param-valueWEB-INF/beans.xml/param-value
/context-param
listener
listener-class
org.springframework.web.context.ContextLoaderListener
/listener-class
/listener
servlet
servlet-nameCXFServlet/servlet-name
display-nameCXF Servlet/display-name
servlet-class
org.apache.cxf.transport.servlet.CXFServlet
/servlet-class
load-on-startup1/load-on-startup
/servlet
servlet-mapping
servlet-nameCXFServlet/servlet-name
url-pattern/services/*/url-pattern
/servlet-mapping
/web-app

Here is my beans.xml:

?xml version=1.0 encoding=UTF-8?
beans xmlns=http://www.springframework.org/schema/beans;
xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
xmlns:jaxrs=http://cxf.apache.org/jaxrs;
xsi:schemaLocation=
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd;
import resource=classpath:META-INF/cxf/cxf.xml /
import
resource=classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml 
/
import resource=classpath:META-INF/cxf/cxf-servlet.xml /
jaxrs:server id=userService address=/
jaxrs:serviceBeans
bean
class=com.brad.UserService /
/jaxrs:serviceBeans
/jaxrs:server
/beans

Here is my service interface (which is implemented by the UserService  
class referenced in beans.xml):


@Path(/UserService)
public interface IUserService {
@POST
@Path(authenticate)
@ConsumeMime(application/xml)
@ProduceMime(application/xml)
AuthenticateResponse authenticate(AuthenticateRequest request);
}

Tomcat loads cleanly (as far as I can tell -- no exceptions). When I  
try to access this service with an xml payload and the following URL:  http://localhost:8080/MyWebApp/services/UserService/authenticate


I get the following exception on the server:

Apr 6, 2008 7:38:46 AM  
org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor handleMessage
SEVERE: No operation found for path: /UserService/authenticate/,  
contentType: application/xml, Accept contentType: */*
Apr 6, 2008 7:38:46 AM org.apache.cxf.phase.PhaseInterceptorChain  
doIntercept

INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: .No operation matching request path / 
UserService/authenticate/ is found, ContentType : application/xml,  
Accept : */*.
	at  
org 
.apache 
.cxf 
.jaxrs 
.interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java: 
120)
	at  
org 
.apache 
.cxf 
.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
	at  
org 
.apache 
.cxf 
.transport 
.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
	at  
org 
.apache 
.cxf 
.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
	at  
org 
.apache 
.cxf 
.transport 
.servlet.ServletController.invokeDestination(ServletController.java:214)
	at  
org 
.apache 
.cxf.transport.servlet.ServletController.invoke(ServletController.java: 
113)
	at  
org 
.apache 
.cxf 
.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java: 
170)
	at  
org 
.apache 
.cxf 
.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java: 
148)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at  
org 
.apache 
.catalina 
.core 
.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 
290)
	at  
org 
.apache 
.catalina 
.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at  
org 
.apache 
.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 
233)
	at  
org 
.apache 
.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 
175)
	at  
org 
.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 
128)
	at  
org 
.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java: 
102)
	at  
org 
.apache 
.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at  
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 
286)
	at  
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java: 
844)
	at org.apache.coyote.http11.Http11Protocol 

Re: jax-rs URLs not working (was: Base class members not serializing / deserializing)

2008-04-06 Thread Doug
Maybe the annotations have to go in the implementation class 
instead/as well? I didn't use an interface - just an instantiatable
class (with method bodies).

Apart from broken POST data, thats the only other thing I can think of.

Doug


On Mon, 7 Apr 2008, Brad O'Hearne wrote:
 Doug,

 Thanks for the reply. I'm still getting the same errors, going to show
 you exactly what happens in my implementation. Here is my web.xml:

 !DOCTYPE web-app
  PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN
  http://java.sun.com/dtd/web-app_2_3.dtd;
 web-app
   context-param
   param-namecontextConfigLocation/param-name
   param-valueWEB-INF/beans.xml/param-value
   /context-param
   listener
   listener-class
   org.springframework.web.context.ContextLoaderListener
   /listener-class
   /listener
   servlet
   servlet-nameCXFServlet/servlet-name
   display-nameCXF Servlet/display-name
   servlet-class
   org.apache.cxf.transport.servlet.CXFServlet
   /servlet-class
   load-on-startup1/load-on-startup
   /servlet
   servlet-mapping
   servlet-nameCXFServlet/servlet-name
   url-pattern/services/*/url-pattern
   /servlet-mapping
 /web-app

 Here is my beans.xml:

 ?xml version=1.0 encoding=UTF-8?
 beans xmlns=http://www.springframework.org/schema/beans;
   xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
   xmlns:jaxrs=http://cxf.apache.org/jaxrs;
   xsi:schemaLocation=
   http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://cxf.apache.org/jaxrs
   http://cxf.apache.org/schemas/jaxrs.xsd;
   import resource=classpath:META-INF/cxf/cxf.xml /
   import
   
 resource=classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml /
   import resource=classpath:META-INF/cxf/cxf-servlet.xml /
   jaxrs:server id=userService address=/
   jaxrs:serviceBeans
   bean
   class=com.brad.UserService /
   /jaxrs:serviceBeans
   /jaxrs:server
 /beans

 Here is my service interface (which is implemented by the UserService
 class referenced in beans.xml):

 @Path(/UserService)
 public interface IUserService {
  @POST
  @Path(authenticate)
  @ConsumeMime(application/xml)
  @ProduceMime(application/xml)
  AuthenticateResponse authenticate(AuthenticateRequest request);
 }

 Tomcat loads cleanly (as far as I can tell -- no exceptions). When I
 try to access this service with an xml payload and the following URL: 
 http://localhost:8080/MyWebApp/services/UserService/authenticate

 I get the following exception on the server:

 Apr 6, 2008 7:38:46 AM
 org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor handleMessage
 SEVERE: No operation found for path: /UserService/authenticate/,
 contentType: application/xml, Accept contentType: */*
 Apr 6, 2008 7:38:46 AM org.apache.cxf.phase.PhaseInterceptorChain
 doIntercept
 INFO: Interceptor has thrown exception, unwinding now
 org.apache.cxf.interceptor.Fault: .No operation matching request path /
 UserService/authenticate/ is found, ContentType : application/xml,
 Accept : */*.
   at
 org
 .apache
 .cxf
 .jaxrs
 .interceptor.JAXRSInInterceptor.handleMessage(JAXRSInInterceptor.java:
 120)
   at
 org
 .apache
 .cxf
 .phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
   at
 org
 .apache
 .cxf
 .transport
 .ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
   at
 org
 .apache
 .cxf
 .transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
   at
 org
 .apache
 .cxf
 .transport
 .servlet.ServletController.invokeDestination(ServletController.java:214)
   at
 org
 .apache
 .cxf.transport.servlet.ServletController.invoke(ServletController.java:
 113)
   at
 org
 .apache
 .cxf
 .transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:
 170)
   at
 org
 .apache
 .cxf
 .transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:
 148)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   at
 org
 .apache
 .catalina
 .core
 .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
 290)
   at
 org
 .apache
 .catalina
 .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at
 org
 .apache
 .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
 233)
   at
 org
 .apache
 .catalina.core.StandardContextValve.invoke(StandardContextValve.java:
 175)
   at
 org
 .apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
 128)
   at
 org
 .apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
 102)