当前位置: 首页 > 知识库问答 >
问题:

无法使用Spring boot camel restlet找到rest api

南宫星波
2023-03-14

嗨,我正在使用带有Camel的springboot,我的路线正在正确开始,但无法触发RestAPI,因为我无法找到它们。

波姆。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/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<groupId>com.camel</groupId>
<artifactId>spring-camel</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-camel</name>
<description>Demo project for Spring Boot</description>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <camel.version>2.21.0</camel.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-spring-boot-starter</artifactId>
        <version>${camel.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-restlet</artifactId>
        <version>${camel.version}</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

应用属性

camel.springboot.xmlRoutes = true 
camel.springboot.xmlRoutes = classpath:xml-route/*.xml 
camel.springboot.main-run-controller=true 
camel.springboot.xmlRests = true 
camel.springboot.xmlRests = classpath:xml-rest/*.xml 
server.port = 8084 
spring.application.name = spring-camel 

Springboot主类:

@SpringBootApplication 
@EnableAutoConfiguration 
public class SpringCamelApplication { 

public static void main(String[] args) { 
   SpringApplication.run(SpringCamelApplication.class, args); 
 } 
} 

Rest路线:

<rests xmlns="http://camel.apache.org/schema/spring">
 <rest id="rest-route">
  <get uri="/test">
    <to uri="direct:test"/>
  </get>
 </rest>
</rests>

应用程序启动后的日志:

2018-05-28 12:34:46.178  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : StreamCaching is not in use. If using streams then its recommended to enable stream caching. See more details at http://camel.apache.org/stream-caching.html
2018-05-28 12:34:46.211  INFO 4852 --- [           main] o.a.camel.component.file.FileEndpoint    : Endpoint is configured with noop=true so forcing endpoint to be idempotent as well
2018-05-28 12:34:46.211  INFO 4852 --- [           main] o.a.camel.component.file.FileEndpoint    : Using default memory based idempotent repository with cache max size: 1000
2018-05-28 12:34:46.357  INFO 4852 --- [           main] o.a.camel.spring.boot.RoutesCollector    : Starting CamelMainRunController to ensure the main thread keeps running
2018-05-28 12:34:46.361  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : Route: first-route started and consuming from: direct://test
2018-05-28 12:34:46.374  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : Route: second-route started and consuming from: file://E://inputFolder?noop=true
2018-05-28 12:34:46.384  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : Route: route1 started and consuming from: restlet:///test?restletMethods=GET
2018-05-28 12:34:46.385  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : Total 3 routes, of which 3 are started
2018-05-28 12:34:46.388  INFO 4852 --- [           main] o.a.camel.spring.SpringCamelContext      : Apache Camel 2.21.0 (CamelContext: camel-1) started in 0.471 seconds
2018-05-28 12:34:46.395  INFO 4852 --- [           main] c.c.springcamel.SpringCamelApplication   : Started SpringCamelApplication in 3.543 seconds (JVM running for 3.878)

所以很明显,它说'route1从: restlet://test开始并消耗?restlet方法=GET',但当我调用http://localhost:8084/test它说无法访问。

急需帮助,提前谢谢。

共有1个答案

施学
2023-03-14

终于在spring上下文中添加rest配置成功了。刚刚添加了下面的代码

    @Bean
    public RestConfiguration getRest()
    {
        RestConfiguration restconfig=new RestConfiguration();
        restconfig.setPort(8081);
        restconfig.setComponent("restlet");
        //restconfig.setHost("localhost");
        restconfig.setContextPath("/api");
        restconfig.setBindingMode("auto");
        return restconfig;
    }
 类似资料:
  • 问题内容: 我一直在尝试在本地计算机上安装进行测试。我已经安装了Python 2.7.10。当我键入: 它给出一个错误: 我找不到CL.exe,在Google上进行的快速搜索似乎缺少了一些Visual C 编译器。但是,我尝试安装说VC 2008可再发行的x86,但仍然是同样的问题。 知道有什么问题吗?操作系统是Windows 7 64位。 问题答案: 我设法解决了这个问题,尽管这很奇怪。老实说,

  • 我试图建立一个虚拟钢琴应用程序,我需要MediaPlayer类来播放音符,我的项目是一个模块化的maven项目,包含fxml,javafx 11.0.2和java 14。 我无法导入 MediaPlayer 类的问题,我试图添加 到我的模块信息中.java但它无论如何都无法识别它。这是我的模块信息.java 也尝试下载库jar,但它是空的。 还试图在pom中添加maven依赖项。xml文件,如下所

  • 我在我的项目中使用 jQuery 时遇到了问题(使用 Angular 和 boosted,这是引导程序的一个分支)。错误如下: 文件夹/包含/my/component.ts中的错误:错误TS2581:找不到名称“$”。您需要为jQuery安装类型定义吗?尝试。 我已经安装了< code>@types/jquery和< code>jquery,并且在angular.json文件中添加了脚本:

  • 元素的HTML为: 来自Firebug的X路径:

  • 我无法使用XPATH和CSS找到元素

  • 我正在尝试使用ISOWeek,但在任何地方都找不到它。我尝试了几种不同的使用方法: 我已经尝试添加每一个系统。我可以找到运行时引用,但它总是给出这些错误: 错误CS0234:命名空间“系统”中不存在类型或命名空间名称“ISOWeek”。全球化“(是否缺少程序集引用?) 错误CS0103:名称“ISOWeek”在当前上下文中不存在 错误CS0246:找不到类型或命名空间名称'ISOYork'(您是否

  • 我尝试使用Python selenium(新的)做一些自动化。不幸的是,检查特定网页的元素不仅仅是困难的。没有id可以使用,我尝试xpath。我想选择一个下拉列表,我检查这个元素,然后复制xpath,它是//*[@id="frmMain:purchase_criteria_tab"]/div[13]/div[1]/div/按钮 我的代码是: 我不明白这个元素有什么想法吗?提前谢谢你。