Hi

Have you tried using the Jetty version that Camel 2.10.3 uses out of the box?


On Thu, Feb 21, 2013 at 4:30 PM, ronly2008 <ronly2...@gmail.com> wrote:
> I have included apache camel inside my application to forward requests
> matching a string pattern.
>
> When I try to deploy the packaged web application inside the jetty
> application server (version  7.6.1.v20120215), the application crashes out
> throwing Linkage error.
>
> I tried to compile the camel source with a few changes in the camel-parent,
> pom.xml so that it uses the same version of dependencies as used by the
> jetty server and the web application.
>
> Below are the changes I have done inside the camel-parent, pom.xml:
>
>      <project xmlns="http://maven.apache.org/POM/4.0.0";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>       <parent>
>         <groupId>org.apache.camel</groupId>
>         <artifactId>camel</artifactId>
>         <version>2.10.3</version>
>       </parent>
>       <modelVersion>4.0.0</modelVersion>
>       <groupId>org.apache.camel</groupId>
>       <artifactId>camel-parent</artifactId>
>       <version>2.10.3</version>
>       <packaging>pom</packaging>
>       <name>Camel :: Parent</name>
>       <description>Camel Parent POM</description>
>       <properties>
>         <jetty-version>7.6.1.v20120215</jetty-version>
>         <log4j-version>1.2.16</log4j-version>
>         <slf4j-api-version>1.6.1</slf4j-api-version>
>         <slf4j-version>1.6.1</slf4j-version>
>
>
> Below are the list of imported dependencies added to my web application's
> pom.xml:
>
>     <dependency>
>         <groupId>org.apache.camel</groupId>
>         <artifactId>camel-core</artifactId>
>         <version>2.10.3</version>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.camel</groupId>
>         <artifactId>camel-spring</artifactId>
>         <version>2.10.3</version>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.camel</groupId>
>         <artifactId>camel-servlet</artifactId>
>         <version>2.10.3</version>
>     </dependency>
>
>
> The error which I get everytime I deploy the webapp is:
>
>
>     2013-02-21 13:06:43.138: org.springframework.web.context.ContextLoader
> ERROR - Context initialization failed
>     org.springframework.beans.factory.BeanDefinitionStoreException:
> Unexpected exception parsing XML document from ServletContext resource
> [/WEB-INF/applicationContext.xml]; nested exception is
> org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class
> [org.apache.camel.spring.handler.CamelNamespaceHandler] for namespace
> [http://camel.apache.org/schema/spring]: problem with handler class file or
> dependent class; nested exception is java.lang.LinkageError: loader
> constraint violation: when resolving method
> "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;"
> the class loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) of
> the current class, org/slf4j/LoggerFactory, and the class loader (instance
> of sun/misc/Launcher$AppClassLoader) for resolved class,
> org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type
> org/slf4j/ILoggerFactory used in the signature
>         at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
>         at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
>         at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
>         at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
>         at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
>         at
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
>         at
> org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
>         at
> org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
>         at
> org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
>         at
> org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:527)
>         at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:441)
>         at
> org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
>         at
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
>         at
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
>         at
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:733)
>         at
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:233)
>         at
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1214)
>         at
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:676)
>         at
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:455)
>         at 
> com.myclass.appserver.ContextWrapper.doStart(ContextWrapper.java:73)
>         at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:59)
>         at 
> com.myclass.appserver.JettyServer.startHandler(JettyServer.java:274)
>         at com.myclass.appserver.JettyServer.deployApp(JettyServer.java:203)
>         at com.myclass.appserver.JettyServer.deployApp(JettyServer.java:138)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:37)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)
>         at
> javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1074)
>         at
> javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:955)
>         at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
>         at
> com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>         at
> javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
>         at
> javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
>         at
> javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
>         at
> javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
>         at
> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
>         at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
>         at sun.rmi.transport.Transport$1.run(Transport.java:159)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>         at
> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>         at
> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
>     Caused by: org.springframework.beans.FatalBeanException: Invalid
> NamespaceHandler class
> [org.apache.camel.spring.handler.CamelNamespaceHandler] for namespace
> [http://camel.apache.org/schema/spring]: problem with handler class file or
> dependent class; nested exception is java.lang.LinkageError: loader
> constraint violation: when resolving method
> "org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()Lorg/slf4j/ILoggerFactory;"
> the class loader (instance of org/eclipse/jetty/webapp/WebAppClassLoader) of
> the current class, org/slf4j/LoggerFactory, and the class loader (instance
> of sun/misc/Launcher$AppClassLoader) for resolved class,
> org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type
> org/slf4j/ILoggerFactory used in the signature
>         at
> org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:139)
>         at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1414)
>         at
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1409)
>         at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184)
>         at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140)
>         at
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111)
>         at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
>         at
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
>         ... 55 more
>
>
> I have looked around a lot trying to figure out the linkage error, but
> without any result.
>
> Any help would be appreciated.
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Apache-camel-throwing-linkage-error-tp5727964.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to