You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Freeman Fang (JIRA)" <ji...@apache.org> on 2010/01/07 06:53:19 UTC

[jira] Commented: (SMX4-457) busCfg cannot find xsd files after moving to SM4

    [ https://issues.apache.org/activemq/browse/SMX4-457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=56791#action_56791 ] 

Freeman Fang commented on SMX4-457:
-----------------------------------

Hi,

Any chance you append your working testcase? 
You can remove your business logic and as simple as just reproduce the behavior you described.

It would be a great help to reproduce and fix this issue.

Thanks
Freeman

> 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
>    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.