busCfg cannot find xsd files after moving to SM4
------------------------------------------------
Key: SMX4-457
URL: https://issues.apache.org/activemq/browse/SMX4-457
Project: ServiceMix 4
Issue Type: Bug
Components: Bundles
Affects Versions: 4.1.0
Reporter: brad
I've taken a working JBI Service Assembly from ServiceMix 3.3.1and dropped it
into the ServiceMix 4.1.0 deploy folder. It fails to process the busCfg file
specified in the CXF Provider object, and it seems to be because the
ClassLoader used when the busCfg file is read uses only the servicemix-cxf-bc
jar and any jars inside my Service Unit zip. For comparison, back in 3.3.1 I'd
also have available anything in SM_HOME/lib (e.g. Spring jars) as well as
anything in the much larger
SM_HOME/hotdeploy/servicemix-cxf-bc-2009.01-installer.zip (e.g.
cxf-rt-transports-*.jar)
Here are some relevant parts of my Service Assembly to illustrate the issue.
jbi.xml
{quote}
<service-unit>
<identification>
<name>cxf_provider</name>
<description>cxf_provider</description>
</identification>
<target>
<artifacts-zip>cxf_provider.zip</artifacts-zip>
<component-name>servicemix-cxf-bc</component-name>
</target>
</service-unit>
{quote}
cxf_provider.zip / xbean.xml
{quote}
<cxfbc:provider wsdl="classpath:service.wsdl"
locationURI="http://myhost:8080/myservice"
...
busCfg="myBusCfg.xml">
{quote}
cxf_provider.zip / myBusCfg.xml
{quote}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sec="http://cxf.apache.org/configuration/security"
xmlns:http="http://cxf.apache.org/transports/http/configuration"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xsi:schemaLocation="
http://cxf.apache.org/configuration/security
http://cxf.apache.org/schemas/configuration/security.xsd
http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<http:conduit ...>
</http:conduit>
{quote}
At the point it starts to read the busCfg file it fails to resolve the "beans"
object, and similarly the "http:conduit" object.
My temporarily solution for now was taken from
http://servicemix.apache.org/classloaders.html where I've defined a
classpath.xml in my Service Unit zip as follows:
{quote}
<beans>
<classpath>
<location>.</location>
<location>lib/myJarFile.jar</location>
<location>../../../../../system/org/springframework/spring-beans/2.5.6.SEC01/spring-beans-2.5.6.SEC01.jar</location>
<location>../../../../../system/org/apache/cxf/cxf-bundle/2.2.5-psc-01-00/cxf-bundle-2.2.5-psc-01-00.jar</location>
</classpath>
</beans>
{quote}
Can you advise a more suitable way to achieve this ?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.