On 1/21/11 10:03 PM, jonathan wrote:
Hi,

I am using cxf 2.3.2 in oder to create WebServices with jax-ws annotation. I
use the CXFNonSpringServlet for the transport and it works just fine.

The thing is that I am taking advantage of the cxf-minimal-bundle with the
cxf.xml,cxf-busextension.xml and so on configuration embedded. Since I don't
need the woodstox and jax-rs extension I have commented the corresponding
lines in the cxf-busextension.xml within the bundle/jar.

In that way I don't have to resolved dependencies for woodstox and jax-rs.

Here are the commented lines:
   <!--
   <extension
class="org.apache.cxf.wstx_msv_validation.WoodstoxValidationImpl"
interface="org.apache.cxf.io.StaxValidationManager" />
   <extension class="org.apache.cxf.jaxrs.JAXRSBindingFactory"
interface="org.apache.cxf.binding.BindingFactory" deferred="true">
     <namespace>http://apache.org/cxf/binding/jaxrs</namespace>
   </extension>
   -->

It works fine but for some reasons I don't want to have to modified the file
within the cxf-minimal-bundle before deploying it. So,  is it possible  to
configure the cxf bus extension at runtime from
an other xml file or an InputStream ?
CXF is using below code to load the XML.

Thread.currentThread().getContextClassLoader().getResources(resource);

This means you can't override the original cxf-busextension.xml by placing a new one in front of the class path.


I have seen that is possible to add an extension with the Bus.setExtension
method, but i was wondering if there is a way for -reloading- a given xml
file which contained the extension ?

I suggest you to use maven shade plugin[1] to build a new bundle which is based on the CXF one , and override the cxf-busextenstion.xml that way.

[1]http://maven.apache.org/plugins/maven-shade-plugin/

Thanks you,

---
Jonathan



--
Willem
----------------------------------
FuseSource
Web: http://www.fusesource.com
Blog:    http://willemjiang.blogspot.com (English)
         http://jnn.javaeye.com (Chinese)
Twitter: willemjiang

Reply via email to