Not sure how CXF-BC is wired to the OSGi transport, but if this is the
case, maybe we should ensure that when installing cxf-bc feature, the
cxf-osgi transport is installed before that.

On Mon, May 25, 2009 at 18:41, Edell Nolan <[email protected]> wrote:
> Hi,
>
> I have a question on the CXF Transport for OSGi.
>
> Basically if you do the following
>
> Start Servicemix
>
> *at the console run => features/install examples-cxf-osgi
> *open a web browser and check that
> http://localhost:8080/cxf/HelloWorld?wsdl<http://localhost:8080/cxf/HelloWorld?wsdl*>gives
> you the demo WSDL
> set *log/set TRACE
> Build the cxf-wsdl-first demo and install it using =>
> **osgi/install -s
> mvn:org.apache.servicemix.examples.cxf-wsdl-first/wsdl-first-cxf-sa/4.1.0-SNAPSHOT/zip
> *
> point your web browser to
> http://localhost:8092/PersonService?wsdl<http://localhost:8092/PersonService?wsdl*>to
> verify the cxf-wsdl-first demo is running
>
> this all works fine and you should see the both wsdl files.
>
> Then restart Servicemix.
>
> You can no longer see
> http://localhost:8092/PersonService?wsdl<http://localhost:8092/PersonService?wsdl*>wsdl
> - from debugging this along - it now ends up in the
> OSGITransportFactory and will throw an error in the log files
>
> "17:58:41,241 | ERROR | xtenderThread-66 | CxfBcComponent
> | mmon.xbean.AbstractXBeanDeployer  103 |
> javax.jbi.management.DeploymentException: java.lang.IllegalStateException:
> Endpoint address should be a relative URI wrt to the servlet address (use
> '/xxx' for example)"
>
>  if you look at
> https://svn.apache.org/repos/asf/servicemix/smx4/features/trunk/cxf/cxf-transport-osgi/src/main/java/org/apache/servicemix/cxf/transport/http_osgi/OsgiTransportFactory.java
>
>  In getDestination it throws
>  if (URI.create(endpointInfo.getAddress()).isAbsolute()) {
>             throw new IllegalStateException("Endpoint address should be a
> relative URI wrt to the servlet address (use '/xxx' for example)");
>  }
>
> the sequence of starting the two demos is the same on reboot but yet we get
> different results.
>
> As when you first attempt to run the cxf-wsdl-first demo the CXF Transport
> for OSGi is already running and we can see out PersonService wsdl. But it
> looks like the OSGI Transport is not set as the default until after a
> refresh/reboot.
>
> Then when you reboot and attempt to launch the PersonService wsdl it ends up
> in the OsgiTransportFactory which is not going to work.
>
> Shouldn't other services be able to be deployed independant of the Osgi
> Transport Service and use say the SoapTransportFactory.
>
> I did ask Freeman and he mentioned one work around would be to use your own
> bus.
>
> thanks, Edell.
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to