首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache : Restlet请求错误

Apache : Restlet请求错误
EN

Stack Overflow用户
提问于 2014-04-25 13:50:13
回答 1查看 1.4K关注 0票数 0

所以我现在和骆驼一起工作,现在我想尝试用骆驼和restlet创建一个webapp,所以我尝试了这个教程。

https://camel.apache.org/restlet.html

但现在还不起作用。我的Tomcat日志中有这个错误。

代码语言:javascript
复制
    INFO: La servlet RestletServlet est marquÈ comme indisponible
25 avr. 2014 14:21:01 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Exception lors de l'allocation pour la servlet RestletServlet
java.lang.ClassNotFoundException: org.springframework.core.env.EnvironmentCapable
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2854)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(Unknown Source)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2854)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
    at java.lang.Class.getDeclaredMethods(Unknown Source)
    at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:226)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1153)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:827)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)

这是我的pom.xml

代码语言:javascript
复制
    <modelVersion>4.0.0</modelVersion>
<groupId>restlet</groupId>
<artifactId>restlet</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>restlet</name>

<properties>
    <customer>control</customer>
    <camelversion>2.11.1</camelversion>
    <restlet-version>2.0.15</restlet-version>
    <spring-version>3.2.3.RELEASE</spring-version>
    <maven-jetty-plugin-version>6.1.25</maven-jetty-plugin-version>
</properties>

<dependencies>
    <!-- camel -->
    <dependency> 
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>${camelversion}</version>
    </dependency>
     <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-exec</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-servlet</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-quartz</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-test</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-mail</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.restlet.jee</groupId>
        <artifactId>org.restlet.ext.spring</artifactId>
        <version>${restlet-version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-jdbc</artifactId>
        <version>${camelversion}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-expression</artifactId>
        <version>${spring-version}</version>
    </dependency>
</dependencies>

<build>
  <directory>build</directory>
    <plugins>
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${maven-jetty-plugin-version}</version>
            <configuration>
                <webApp>${basedir}/target/camel-restlet.war</webApp>
                <contextPath>/</contextPath>
            </configuration>
            </plugin>    
    </plugins>
</build>
<repositories>
    <repository>  
        <id>maven-restlet</id>  
        <name>Public online Restlet repository</name>  
        <url>http://maven.restlet.org</url>  
    </repository>
</repositories>

这是我的web.xml

代码语言:javascript
复制
<!-- Restlet Servlet -->
<servlet>
    <servlet-name>RestletServlet</servlet-name>
    <servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
    <init-param>
        <param-name>org.restlet.component</param-name>
        <param-value>RestletComponent</param-value>
    </init-param>

</servlet>

<servlet-mapping>
    <servlet-name>RestletServlet</servlet-name>
    <url-pattern>/rs/*</url-pattern>
</servlet-mapping>

这是我的背景

代码语言:javascript
复制
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <route id="RS_RestletDemo">
        <from uri="restlet:/demo/{id}" />
        <transform>
<simple>Request type : ${header.CamelHttpMethod} and ID :${header.id}</simple>
        </transform>
    </route>
</camelContext>

<bean id="RestletComponent" class="org.restlet.Component" />

<bean id="RestletComponentService"      class="org.apache.camel.component.restlet.RestletComponent">
    <constructor-arg index="0">
        <ref bean="RestletComponent" />
    </constructor-arg>
</bean>
 </beans>

我肯定我错过了什么..。

谢谢你的进阶!

EN

回答 1

Stack Overflow用户

发布于 2014-04-27 00:28:43

Camel 2.11.1使用Spring3.1.4.RELEASE,而pom春季版本为3.2.3.RELEASE,因此需要将pom春季版本更新为3.1.4.RELEASE,或者使用排除来修复春季版本错过匹配。

顺便说一句,您可以使用mvn依赖项:tree来找出春季版本没有匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23295074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档