2011-09-23 3 views
1

Я пытаюсь получить базовый пример конечной точки сервлета для работы на верблюде. Мой пример основан на следующем: http://camel.apache.org/servlet-tomcat-example.htmlИспользование сервлета Camel

Когда я пытаюсь запустить это в Jetty, хотя я получаю следующее исключение: «java.lang.IllegalStateException: Нет ресурсов на org.apache.camel.component.servlet.CamelHttpTransportServlet/httpRegistry '

Вот мой web.xml

<!-- Camel servlet --> 
<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> 

<!-- Camel servlet mapping --> 
<servlet-mapping> 
    <servlet-name>CamelServlet</servlet-name> 
    <url-pattern>/camel/*</url-pattern> 
</servlet-mapping> 


<!-- the listener that kick-starts Spring --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<!-- location of spring xml files --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/applicationContext.xml</param-value> 
</context-param> 

А вот мой applicationContext.xml:

<bean id="route" class="com.routes.smppRoute" /> 
<!-- the camel context --> 
<camelContext xmlns="http://camel.apache.org/schema/spring" id="camel"> 
    <routeBuilder ref="route" /> 
</camelContext> 

Маршрут просто принимает входные данные и выводит его на консоль

public class smppRoute extends RouteBuilder { 
@Override 
public void configure() throws Exception { 
    from("servlet:///").to("stream:out"); 

} 

}

Я уверен, что у меня есть все зависимости в, вот 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"> 

<modelVersion>4.0.0</modelVersion> 

<groupId>com.fundamo</groupId> 
<artifactId>fundamo-platform-smpp-camel</artifactId> 
<version>1.0-SNAPSHOT</version> 

<name>Camel Router Application</name> 
<description>Camel project that deploys the Camel routes as a WAR</description> 
<url>http://www.myorganization.org</url> 

<packaging>war</packaging> 

<repositories> 
    <repository> 
     <id>org.apache.camel</id> 
     <url>https://repository.apache.org/content/groups/snapshots-group</url> 
    </repository> 
</repositories> 

<dependencies> 

    <!-- Camel Dependencies --> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-core</artifactId> 
     <version>2.7-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-spring</artifactId> 
     <version>2.7-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-stream</artifactId> 
     <version>2.7-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.camel</groupId> 
     <artifactId>camel-servlet</artifactId> 
     <version>2.7-SNAPSHOT</version> 
    </dependency> 
    <!-- Spring Web --> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.0.5.RELEASE</version> 
    </dependency> 

    <!-- logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.5.11</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
    </dependency> 

</dependencies> 

<build> 
    <defaultGoal>install</defaultGoal> 

    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 

     <!-- plugin so you can run mvn jetty:run --> 
     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>7.2.2.v20101205</version> 

      <configuration> 
       <webAppConfig> 
        <contextPath>/</contextPath> 
       </webAppConfig> 

       <systemProperties> 
        <!-- enable easy JMX connection to JConsole --> 
        <systemProperty> 
         <name>com.sun.management.jmxremote</name> 
         <value /> 
        </systemProperty> 
       </systemProperties> 
       <scanIntervalSeconds>10</scanIntervalSeconds> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

+1

Хорошо, теперь это работает, я обновил версию верблюда, который использовал. Похоже, что была какая-то ошибка – Ren

ответ

1

Можете ли вы попытаться изменить версию на 2.8.1 вместо использования 2.7-SNAPSHOT? Я только что немного проверил на примере верблюда-сервлета-кота в стволе верблюда, он не бросает такую ​​ошибку.

Смежные вопросы