Afternoon All I've been trying to write a simple application that listens on a camel-servlet endpoint, and is deployed in an Apache Tomcat container. I've principly been following the information on the following forum links to create the application:
http://camel.465427.n5.nabble.com/Camel-and-Tomcat-td3386793.html#a3390331 http://camel.465427.n5.nabble.com/How-to-create-a-Servlet-component-td475676.html#a475684 http://camel.apache.org/servlet.html My project consists of the following: web.xml: <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>CamelServlet</servlet-name> <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class> <init-param> <param-name>matchOnUriPrefix</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- see http://camel.apache.org/servlet.html--> <servlet> <servlet-name>SpringApplicationContext</servlet-name> <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CamelServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app> camel-config.xml: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- create a camel context as to start Camel --> <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <package>org.apache.camel.Tomcat</package> </camelContext> </beans> The route, ServletToJmsRouteBuilder.java, located in <project_root>\src\main\java\org\apache\camel\Tomcat: package org.apache.camel.Tomcat; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; public class ServletToJmsRouteBuilder extends RouteBuilder { public void configure() throws Exception { from("servlet:///hello").process(new Processor() { public void process(Exchange exchange) { String contentType = (String) exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class); String path = (String) exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class); String charsetEncoding = (String) exchange.getIn().getHeader(Exchange.HTTP_CHARACTER_ENCODING, String.class); exchange.getOut().setHeader(Exchange.CONTENT_TYPE, contentType + "; charset=UTF-8"); exchange.getOut().setHeader("PATH", path); exchange.getOut().setBody("Hello World"); } }); } } The project is built via the maven package lifecycle. The pom.xml file contains the following: <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"> <modelVersion>4.0.0</modelVersion> <groupId>org.apache.camel</groupId> <artifactId>CamelTomcat</artifactId> <name>Camel Tomcat Servlet Example</name> <description>A Camel Servlet example using Tomcat</description> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <dependencies> <!-- camel --> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-spring</artifactId> <version>2.4.0</version> </dependency> <dependency> <!-- use the same version as the camel-core version --> <groupId>org.apache.camel</groupId> <artifactId>camel-servlet</artifactId> <version>2.4.0</version> </dependency> <!-- logging --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> </dependencies> </project> When Tomcat deploys the .war file, it displays the message: INFO: Deploying web application archive CamelTomcat-0.0.1-SNAPSHOT.war 01-Mar-2011 14:27:59 org.apache.catalina.loader.WebappClassLoader validateJarFile INFO: validateJarFile(C:\MF\Tools\apache-tomcat-7.0.8\apache-tomcat-7.0.8\webapp s\CamelTomcat-0.0.1-SNAPSHOT\WEB-INF\lib\geronimo-servlet_2.4_spec-1.1.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/serv let/Servlet.class I'm unsure if this is stopping the application being accessible. But when I attempt to access the servlet endpoint using the following URL I get a message stating "The requested resource() is not available": http://localhost:8080/CamelTomcat-0.0.1-SNAPSHOT/services/hello Any ideas what I'm doing wrong? I'm very new to Camel/Tomcat and appreciate any help you can provide. Many thanks Matt -- View this message in context: http://camel.465427.n5.nabble.com/Camel-Servlet-Tomcat-Problem-tp3405032p3405032.html Sent from the Camel - Users mailing list archive at Nabble.com.
