Hi
On 28/11/11 18:27, Guy Pardon wrote:
Hi,
I am trying to get a REST service deployed in OSGi (Felix). To do so, I tried
embedding all depedencies as jars into my bundle, including CXF.
However, this fails upon start, saying:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema
namespace [http://cxf.apache.org/jaxrs]
Offending resource: class path resource [delijn//cxf.xml]
I am aware that OSGi changes the rules a bit for loading stuff from the
classpath.
Question 1: are there any examples on how to make this work?
I've seen an issue like this once (with pax-web being involved wrapping
a CXF Servlet on Unix only, Windows was OK), and I recall one of users
reporting a similar issue when embedding CXF JAX-RS in JBoss.
In the demo I was working upon I resorted to using class names of the
underlying handlers explicitly, for example, see:
http://cxf.apache.org/docs/jaxrs-services-configuration.html#JAXRSServicesConfiguration-ConfiguringJAXRSservicesusingexplicitbeanconfiguration
It is not a common approach, just a workaround to some specific
deployment problems to do with Spring; perhaps using Blueprint may help,
I need to add some documentation...
Question 2: is this a use case for DOSGi/CXF?
DOSGi is about making sure that an OSGI Service registration leads to an
endpoint being created under the hood; and the service lookup - to a
proxy being created. While DOSGi offers its own approach toward working
with web services in OSGI, the DOSGi CXF distribution is to some extent
simply a collection of bundles one needs to deploy a regular CXF web
service in OSGI, so may be it's better not to embed all the libs inside
a bundle but deploy needed bundles one by one
By the way, have a look at the minimal sample application attached to:
https://issues.apache.org/jira/browse/CXF-3859
Cheers, Sergey
Thanks
Guy
--
Sergey Beryozkin
Talend Community Coders
http://coders.talend.com/
Blog: http://sberyozkin.blogspot.com