281.6.5. 在 webapp 中使用 Restlet servlet


根据 Camel 2.8
三种方式,可以在 servlet 容器中配置 Restlet 应用程序,并使用子类 SpringServerServlet 通过注入 Restlet 组件来启用 Camel 中的配置。

在 servlet 容器中使用 Restlet servlet 可让路由配置 URI 中的相对路径(删除硬编码的绝对 URI 的限制),以及用于托管 servlet 容器来处理传入请求(而不是在新端口上生成单独的服务器进程)。

前提条件

  • 您需要在 Maven pom.xml 文件中的 restlet 中添加对 Spring 扩展的依赖项:

    <dependency>
      <groupId>org.restlet.jee</groupId>
      <artifactId>org.restlet.ext.spring</artifactId>
      <version>${restlet-version}</version>
    </dependency>
    Copy to Clipboard Toggle word wrap

流程

  1. 要配置 Restlet 应用,请在您的 camel-context.xml 中添加以下内容:

    <camelContext>
      <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>
    Copy to Clipboard Toggle word wrap
  2. 将以下内容添加到 web.xml; 中 ;

    <!-- 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>
    Copy to Clipboard Toggle word wrap

结果

您可以在 http://localhost:8080/mywebapp/rs/demo/1234 中访问部署的路由,其中 localhost:8080 是 servlet 容器的服务器和端口,mywebapp 是部署的 webapp 的名称。

您的浏览器将显示以下内容:

"Request type : GET and ID : 1234"
Copy to Clipboard Toggle word wrap
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部