Hi Charles,

If we want to create a spring context in the OSGi platform, we need to leverage the Spring DM to help you look up the schema across the bundles.
Current CamelServlet just create the Spring application with use that.

Maybe you can consider to use the OsgiServletRegisterer which is new added by Christian, you can find more information from the JIRA[1].

[1]https://issues.apache.org/jira/browse/CAMEL-3490

Willem

On 2/15/11 5:44 PM, Charles Moulliard wrote:
camel-spring is deployed on Karaf and referenced as a Require-Bundle
in the MANIFEST.MF file of my WAR project

The issue is that we cannot import here the camel spring schema as it
is part of the root of camel-spring jar and not exported by the bundle
like this is the case by example for camel-cxf

ex :

karaf@root>  packages:exports 1883 = camel-cxf
     ID Packages
   1883 org.apache.camel.component.cxf.util
   1883 org.apache.camel.component.cxf
   1883 org.apache.camel.component.cxf.spring
   1883 org.apache.camel.component.cxf.transport.spring
   1883 org.apache.camel.component.cxf.transport
   1883 org.apache.camel.component.cxf.converter
   1883 org.apache.camel.component.cxf.jaxrs
   1883 org.apache.camel.component.cxf.interceptors
   1883 org.apache.camel.component.cxf.soap.headers
   1883 org.apache.camel.component.cxf.cxfbean
   1883 org.apache.camel.component.cxf.feature
   1883 META-INF.cxf.camel<--- where the schemas are exported

On Tue, Feb 15, 2011 at 10:33 AM, Sumit Teke
<sumit_t...@omniscient.co.in>  wrote:
  Check if camel-spring is on classpath.

Thanks,
Sumit Teke

On Tuesday 15 February 2011 02:51 PM, Charles Moulliard wrote:

Hi,

When deploying a WAR project on Karaf, I get the following error :

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for
XML schema namespace [http://camel.apache.org/schema/spring]
Offending resource: class path resource
[META-INF/spring/camel-context.xml]

        at
org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:284)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1332)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)[48:org.springframework.beans:3.0.5.RELEASE]
        at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)[49:org.springframework.context:3.0.5.RELEASE]
        at
org.apache.camel.component.servlet.CamelHttpTransportServlet.init(CamelHttpTransportServlet.java:46)[1985:org.apache.camel.camel-servlet:2.6.0]
        at
org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:432)[1842:org.eclipse.jetty.servlet:7.2.2.v20101205]

Spring is not able to find the NameSpaceHandler for XML schema
namespace [http://camel.apache.org/schema/spring] even if canel-core
and camel-spring 2,6,0 are deployed on Karaf and added in the
classpath.

     <servlet>
         <servlet-name>CamelServlet</servlet-name>
         <display-name>Camel Http Transport Servlet</display-name>

<servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
         <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>META-INF/spring/camel-context.xml</param-value>
         </init-param>
     </servlet>

     <servlet-mapping>
         <servlet-name>CamelServlet</servlet-name>
         <url-pattern>/test/*</url-pattern>
     </servlet-mapping>

*************************************
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xmlns:camel="http://camel.apache.org/schema/spring";
    xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://camel.apache.org/schema/spring
    http://camel.apache.org/schema/spring/camel-spring.xsd";>

     <bean id="response"
class="org.apache.camel.example.osgi.ResponseBean"/>

        <camelContext xmlns="http://camel.apache.org/schema/spring";>
         <route id="servlet-service">
             <from uri="servlet:///service"/>
             <bean ref="response"/>
             <log message="Response send to the client !"
loggingLevel="INFO"/>
         </route>
        </camelContext>

</beans>


Any idea is welcome ?

Regards,

Charles Moulliard

Sr. Principal Solution Architect - FuseSource
Apache Committer

Blog : http://cmoulliard.blogspot.com
Twitter : http://twitter.com/cmoulliard
Linkedin : http://www.linkedin.com/in/charlesmoulliard
Skype: cmoulliard




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

Reply via email to