You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Charles Moulliard <cm...@gmail.com> on 2011/01/03 18:30:37 UTC

Issue with Spring Namespace Handler when deploying camel as a WAR on Karaf

Hi,


I get the following issue (Spring Namespace Handler) when deploying
camel route (using camel-servlet)  as a WAR on Karaf

1) Servlet definition

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
         version="2.4">

    <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>org/apache/camel/example/osgi/camel-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>

    </servlet>

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

</web-app>

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

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

3) Bundle definition

CAMEL :: OSGI WAR :: Servlet (210)
----------------------------------
Manifest-Version = 1.0
Original-Wires = org.apache.camel.component.servlet
Bnd-LastModified = 1294075691037
Archiver-Version = Plexus Archiver
Tool = Bnd-0.0.313
Originally-Created-By = 1.6.0_22 (Apple Inc.)
Built-By = charlesmoulliard
Web-ContextPath = test
Generated-By-Ops4j-Pax-From =
wrap:file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war$Bundle-UpdateLocation=file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war&DynamicImport-Package=*&Original-Wires=org.apache.camel.component.servlet&overwrite=merge
Build-Jdk = 1.6.0_22
Created-By = 1.6.0_22 (Apple Inc.)

Bundle-UpdateLocation =
file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war
Bundle-Name = CAMEL :: OSGI WAR :: Servlet
Bundle-SymbolicName = osgi-servlet-war
Bundle-Version = 1.0.0
Bundle-ManifestVersion = 2
Bundle-ClassPath = WEB-INF/classes

DynamicImport-Package =
	*
Private-Package =
	org.apache.camel.example.osgi,
	webapp.WEB-INF
Import-Package =
	org.apache.camel.component.servlet;version=2.5


18:24:02,003 | WARN  | l Console Thread | /test
    | .eclipse.jetty.util.log.Slf4jLog   50 | 73 -
org.eclipse.jetty.util - 7.1.6.v20100715 | unavailable
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
[org/apache/camel/example/osgi/camel-context.xml]

	at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:284)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1332)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)[147:org.springframework.beans:3.0.5.RELEASE]
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)[149:org.springframework.context:3.0.5.RELEASE]
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)[149:org.springframework.context:3.0.5.RELEASE]
	at org.apache.camel.component.servlet.CamelHttpTransportServlet.init(CamelHttpTransportServlet.java:46)[209:org.apache.camel.camel-servlet:2.5.0]
	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:421)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:245)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)[73:org.eclipse.jetty.util:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:691)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
	at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:1083)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]


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

Re: Issue with Spring Namespace Handler when deploying camel as a WAR on Karaf

Posted by Willem Jiang <wi...@gmail.com>.
This issue could be the CamelHttpTransportServlet is using the Spring 
class instead of the Spring DM to initiate the Application Context.

I think we need to find other way to let CamelServletComponent know 
about the Servlet which is deployed into OSGi Web Container.

Willem

On 1/4/11 1:30 AM, Charles Moulliard wrote:
> Hi,
>
>
> I get the following issue (Spring Namespace Handler) when deploying
> camel route (using camel-servlet)  as a WAR on Karaf
>
> 1) Servlet definition
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>           xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>           version="2.4">
>
>      <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>org/apache/camel/example/osgi/camel-context.xml</param-value>
>          </init-param>
>          <load-on-startup>1</load-on-startup>
>
>      </servlet>
>
>      <servlet-mapping>
>          <servlet-name>CamelServlet</servlet-name>
>          <url-pattern>/services/*</url-pattern>
>      </servlet-mapping>
>
> </web-app>
>
> 2) Camel route
>      <bean id="response" class="org.apache.camel.example.osgi.ResponseBean"/>
>
> 	<camelContext xmlns="http://camel.apache.org/schema/spring">
>          <route>
>              <from uri="servlet:///service"/>
>              <bean ref="response"/>
>              <log message="Response send to the client !" loggingLevel="INFO"/>
>          </route>	
> 	</camelContext>
>
> 3) Bundle definition
>
> CAMEL :: OSGI WAR :: Servlet (210)
> ----------------------------------
> Manifest-Version = 1.0
> Original-Wires = org.apache.camel.component.servlet
> Bnd-LastModified = 1294075691037
> Archiver-Version = Plexus Archiver
> Tool = Bnd-0.0.313
> Originally-Created-By = 1.6.0_22 (Apple Inc.)
> Built-By = charlesmoulliard
> Web-ContextPath = test
> Generated-By-Ops4j-Pax-From =
> wrap:file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war$Bundle-UpdateLocation=file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war&DynamicImport-Package=*&Original-Wires=org.apache.camel.component.servlet&overwrite=merge
> Build-Jdk = 1.6.0_22
> Created-By = 1.6.0_22 (Apple Inc.)
>
> Bundle-UpdateLocation =
> file:/Users/charlesmoulliard/Apache/karaf/assembly/target/apache-karaf-2.1.99-SNAPSHOT/deploy/osgi-servlet-war-1.0.0.war
> Bundle-Name = CAMEL :: OSGI WAR :: Servlet
> Bundle-SymbolicName = osgi-servlet-war
> Bundle-Version = 1.0.0
> Bundle-ManifestVersion = 2
> Bundle-ClassPath = WEB-INF/classes
>
> DynamicImport-Package =
> 	*
> Private-Package =
> 	org.apache.camel.example.osgi,
> 	webapp.WEB-INF
> Import-Package =
> 	org.apache.camel.component.servlet;version=2.5
>
>
> 18:24:02,003 | WARN  | l Console Thread | /test
>      | .eclipse.jetty.util.log.Slf4jLog   50 | 73 -
> org.eclipse.jetty.util - 7.1.6.v20100715 | unavailable
> 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
> [org/apache/camel/example/osgi/camel-context.xml]
>
> 	at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:80)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.error(BeanDefinitionParserDelegate.java:284)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1332)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1325)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:135)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:93)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)[147:org.springframework.beans:3.0.5.RELEASE]
> 	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)[149:org.springframework.context:3.0.5.RELEASE]
> 	at org.apache.camel.component.servlet.CamelHttpTransportServlet.init(CamelHttpTransportServlet.java:46)[209:org.apache.camel.camel-servlet:2.5.0]
> 	at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:421)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
> 	at org.eclipse.jetty.servlet.ServletHolder.doStart(ServletHolder.java:245)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
> 	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:55)[73:org.eclipse.jetty.util:7.1.6.v20100715]
> 	at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:691)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
> 	at org.eclipse.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:1083)[66:org.eclipse.jetty.servlet:7.1.6.v20100715]
>
>
> 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