You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Edell Nolan (JIRA)" <ji...@apache.org> on 2008/10/22 20:04:52 UTC

[jira] Commented: (SMX4-134) Bundle Resource loader fails to find extra config files specified

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

Edell Nolan commented on SMX4-134:
----------------------------------

When I try to deploy one of the zip files to smx4 I get an error indicating that it cannot find the file - this error is thrown from CXF but it's not the real error.  

I have the following in my xbean.xml file 

<cxfbc:provider service="ware:WarehouseServiceSoapJMS"

            endpoint="WarehouseEndpointSoapJMS" 

            useJBIWrapper="false"

            wsdl="classpath:warehouse-soapjms.wsdl"            

            interfaceName="ware:Warehouse"

            busCfg="/spring-jms.xml">                                                

</cxfbc:provider>

 
In my spring-jms.xml file I have  

<jms:conduit name="{http://logisticx.demo.fuse.iona.com/warehouseService/}WarehouseEndpointSoapJMS.jms-conduit">

                        <jms:clientConfig clientReceiveTimeout="40000" messageTimeToLive="40000" />

</jms:conduit> 

So the error on deployment I get is  

WARNING: Could not find the configuration file /spring-jms.xml on the classpath.
 

But is covered up by the code in CXF 

org.apache.cxf.bus.spring.SpringBusFactory

private BusApplicationContext createApplicationContext(String cfgFiles[], boolean includeDefaults) {

        try {      

            return new BusApplicationContext(cfgFiles, includeDefaults, context);

        } catch (BeansException ex) {

            ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();

            if (contextLoader != BusApplicationContext.class.getClassLoader()) {

                Thread.currentThread().setContextClassLoader(

                    BusApplicationContext.class.getClassLoader());

                try {

                    return new BusApplicationContext(cfgFiles, includeDefaults, context);        

                } finally {

                    Thread.currentThread().setContextClassLoader(contextLoader);

                }

            } else {

                throw ex;

            }

        }

    }


Basically when it does get an error it changes the classloaders - so it gets changed from a jarFileClassloader so it will never find the file. 

I have debugged the code and the real error seems to be that it cannot convert from  

org.apache.cxf.bus.spring.BusApplicationContextResourceResolver to org.apache.cxf.resource.ResourceResolver 

So this looks like they are being loaded by different classloaders. 


> Bundle Resource loader fails to find extra config files specified
> -----------------------------------------------------------------
>
>                 Key: SMX4-134
>                 URL: https://issues.apache.org/activemq/browse/SMX4-134
>             Project: ServiceMix 4
>          Issue Type: Bug
>    Affects Versions: 4.0-m2
>            Reporter: Edell Nolan
>
> If I attempt to deploy an SU that has config like the following - it will fail to find the spring-jms.xml file. 
> 	<cxfbc:provider service="ware:WarehouseServiceSoapJMS"
>             endpoint="WarehouseEndpointSoapJMS" 
>             useJBIWrapper="false"
>             wsdl="classpath:warehouse-soapjms.wsdl"            
>             interfaceName="ware:Warehouse"
>             busCfg="classpath:spring-jms.xml">
> this file is located in the same location as the xbean.xml file.
> Output of deployment :
> 07-Oct-2008 10:39:18 org.apache.cxf.bus.spring.BusApplicationContext getConfigRe
> sources
> WARNING: Could not find the configuration file classpath:spring-jms.xml on the classpath.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.