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

由于骆驼上下文引起的错误,我无法运行我的程序,我应该怎么做才能解决这个问题?

贺元明
2023-03-14

所以我在这里试图做的是通过骆驼apache创建一个缩放会议。每当我运行程序时,我都会收到错误,导致错误的行是当我启动骆驼上下文c.start()这是我运行的代码:

    package com.example.demo;

    import com.google.gson.Gson;
    import com.google.gson.JsonObject;
    import org.apache.camel.*;
    import org.apache.camel.builder.RouteBuilder;
    import org.apache.camel.impl.DefaultCamelContext;
    import org.apache.camel.model.dataformat.JsonLibrary;

    import static org.springframework.http.converter.json.Jackson2ObjectMapperBuilder.json;

public class Test {
    private String token = "sample token";
    public static void main(String[] args) throws Exception {
        CamelContext c = new DefaultCamelContext();
        settings set = new settings(true, true, false,
                false, true,"voip","cloud");
        recurrence rec = new recurrence(1,1);
        c.addRoutes(new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:start")
                        .process(exchange -> exchange.getIn().setBody(new ZoomSetting(
                                "Testing zoom api",
                                2,
                                "2022-05-09T14: 00: 00",
                                45,
                                "America/New_York",
                                "testing",
                                rec,
                                set
                        )))
                        .marshal().json(JsonLibrary.Gson)
                        .setHeader(Exchange.HTTP_METHOD, constant("POST"))
                        .setHeader(Exchange.CONTENT_TYPE, constant("application/json"))
                        .setHeader("Authorization", simple("Bearer"+ token))
                        .to("https://api.zoom.us/v2/users/me/meetings")
                        .process(exchange -> log.info("The response code is: {}", exchange.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE)));
            }
        });
        c.start();

    }
}

我试图在pom.xml文件中包含依赖项,但这并没有真正帮助。以下是我在pom.xml中包含的依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.camel.springboot</groupId>
        <artifactId>camel-spring-boot-starter</artifactId>
        <version>3.16.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.camel/camel-http-starter -->
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http-starter</artifactId>
        <version>3.0.0-RC3</version>
    </dependency>


    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>com.auth0</groupId>
        <artifactId>java-jwt</artifactId>
        <version>3.19.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-rest</artifactId>
        <version>3.16.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-gson</artifactId>
        <version>3.16.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-direct</artifactId>
        <version>3.16.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-http</artifactId>
        <version>3.16.0</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-core</artifactId>
        <version>3.16.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-context</artifactId>
        <version>2.25.4</version>
    </dependency>




</dependencies>

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

我不断得到的错误是:

线程" main " Java . lang . abstract method error中出现异常:接收器类org . Apache . camel . management . jmxmanagementlifecyclestrategy未定义或继承已解析方法抽象onRouteContextCreate(Lorg/Apache/camel/Route;)接口org . Apache . camel . SPI . life cycle strategy . at org . Apache . camel . reifier . route refier . doc create route(route refier . Java:213)at org . Apache . camel . reifier . route refier . create route(route refier . Java:74)at org . Apache . camel . impl . defaultmodelreifierfactory . create route(defaultmodelreifierfactory . Java:49)at org . Apache . camel . impl . default

共有1个答案

欧阳博超
2023-03-14

如果你想使用main方法运行骆驼,你应该使用camel-main,它用于运行独立的骆驼应用程序。您正在尝试做的是将 Camel 作为独立应用程序运行,但使用 camel-spring-boot 依赖项。

您可以使用 maven 原型骆驼原型-主生成新的独立骆驼应用程序项目,并将其用作如何设置项目的参考。

mvn archetype:generate -DarchetypeGroupId="org.apache.camel.archetypes" -DarchetypeArtifactId="camel-archetype-main" -DarchetypeVersion="3.14.3"

如果您想使用spring-framework和spring-boot来运行camel,那么您可以使用camel-prototype-spring-boot原型来生成示例camel spring-boot项目。我建议在引入camel之前熟悉Spring-framework和Spring-boot的基础知识,以避免不必要的混淆。

mvn archetype:generate -DarchetypeGroupId="org.apache.camel.archetypes" -DarchetypeArtifactId="camel-archetype-spring-boot" -DarchetypeVersion="3.14.3"
  • 骆驼 - 原型
  • 骆驼 - 主要
  • 骆驼 - Spring靴
 类似资料:
  • Traceback(最近调用最后一次):文件"C:\用户\josej\AppData\本地\程序\Python\Python310\lib\站点包\mysql\连接器\abstracts.py",第553行,在配置DEFAULT_CONFIGURATION[key]KeyError:'datebase' 在处理上述异常期间,发生了另一个异常: 回溯(最近一次调用):文件“C:\Users\jose

  • 输入: 第一行:两个空间分隔的整数N和Q,分别表示数组A中的元素数和查询数 第二行:N个表示数组元素的分隔整数

  • 我已经有以下CORS问题好几天了,我不打算解决它。localhost:4200上的Angular应用程序不允许我访问上传照片的路径。 我的后台在拉勒维尔 我可以登录、注册和执行其他帖子请求,但不能这样。 这是我的应用程序的图像。 这是我注册为全球中间件的CORS中间件] 网络选项卡中的响应标头 1

  • 失败:生成失败,出现异常。 > 其中:Script“C:\flutter\packages\flutter_tools\gradle\flutter.gradle”行:900 错误:任务“:app:CompileFlutterBuildDebug”执行失败。 进程“command”C:\flutter\bin\flutter.bat“已完成,退出值为非零%1 生成在%12s中失败异常:Gradle

  • 我正在用java制作一个tic-tac-toe游戏,作为家庭作业。我有一个名为TicTacToe的父类和一个名为humanVsHuman的派生类。 下面的方法是在派生类中编写的。它提示用户输入他们想要输入游戏棋子的位置(X或O),然后从父类中调用两个方法:一个将X或O存储在名为setGb()的多功能数组中,另一个用名为displayBoard()的新棋子显示棋盘。 方法如下: 我收到以下运行时错误

  • 我怎么能解决这个问题? 颤振并建立网络 具有良好零安全性的建筑物 目标dart2js失败:异常:警告:'dart2js'entrypoint脚本已弃用,请改用'dart compile js'。 /C:/用户/DELL/AppData/本地/发布/缓存/托管/pub.dartlang.org/flutter_screenutil-5.3.1/lib/screenutil_init.dart: 23