Coder Social home page Coder Social logo

apache / rocketmq-connect Goto Github PK

View Code? Open in Web Editor NEW
120.0 48.0 116.0 5.01 MB

A tool for scalable and reliably streaming data between Apache RocketMQ and other systems.

Home Page: https://rocketmq.apache.org/

License: Apache License 2.0

Shell 0.57% Java 99.25% Python 0.13% Dockerfile 0.04%

rocketmq-connect's Introduction

rocketmq-connect

License

文档中心

RocketMQ Connect 文档

快速开始

单机模式下rocketmq-connect-sample作为 demo

rocketmq-connect-sample的主要作用是从源文件中读取数据发送到RocketMQ集群 然后从Topic中读取消息,写入到目标文件

1.准备

  1. Linux/Unix/Mac
  2. 64bit JDK 1.8+;
  3. Maven 3.2.x或以上版本;
  4. 启动 RocketMQ;
  5. 创建测试Topic

sh ${ROCKETMQ_HOME}/bin/mqadmin updateTopic -t fileTopic -n localhost:9876 -c DefaultCluster -r 8 -w 8

tips : ${ROCKETMQ_HOME} 位置说明

bin-release.zip 版本:/rocketmq-all-4.9.4-bin-release

source-release.zip 版本:/rocketmq-all-4.9.4-source-release/distribution

2.构建Connect

git clone https://github.com/apache/rocketmq-connect.git

cd  rocketmq-connect

mvn -Prelease-connect -DskipTests clean install -U

3.运行Worker

cd distribution/target/rocketmq-connect-0.0.1-SNAPSHOT/rocketmq-connect-0.0.1-SNAPSHOT

sh bin/connect-standalone.sh -c conf/connect-standalone.conf &

tips: 可修改 /bin/runconnect.sh 适当调整 JVM Parameters Configuration

JAVA_OPT="${JAVA_OPT} -server -Xms256m -Xmx256m"

runtime启动成功:

The standalone worker boot success.

查看启动日志文件:

tail -100f ~/logs/rocketmqconnect/connect_runtime.log

ctrl + c 退出日志

4.启动source connector

当前目录创建测试文件 test-source-file.txt

touch test-source-file.txt

echo "Hello \r\nRocketMQ\r\n Connect" >> test-source-file.txt

curl -X POST -H "Content-Type: application/json" http://127.0.0.1:8082/connectors/fileSourceConnector -d '{"connector.class":"org.apache.rocketmq.connect.file.FileSourceConnector","filename":"test-source-file.txt","connect.topicname":"fileTopic"}'

看到以下日志说明 file source connector 启动成功了

tail -100f ~/logs/rocketmqconnect/connect_runtime.log

2019-07-16 11:18:39 INFO pool-7-thread-1 - Source task start, config:{"properties":{"source-record-...

source connector配置说明

key nullable default description
connector.class false 实现 Connector接口的类名称(包含包名)
filename false 数据源文件名称
connect.topicname false 同步文件数据所需topic

5.启动sink connector

curl -X POST -H "Content-Type: application/json" http://127.0.0.1:8082/connectors/fileSinkConnector -d '{"connector.class":"org.apache.rocketmq.connect.file.FileSinkConnector","filename":"test-sink-file.txt","connect.topicnames":"fileTopic"}'

cat test-sink-file.txt

tail -100f ~/logs/rocketmqconnect/connect_runtime.log

看到以下日志说明file sink connector 启动成功了

2019-07-16 11:24:58 INFO pool-7-thread-2 - Sink task start, config:{"properties":{"source-record-...

如果 test-sink-file.txt 生成并且与 source-file.txt 内容一样,说明整个流程正常运行。 文件内容可能顺序不一样,这主要是因为RocketMQ发到不同queue时,接收不同queue消息顺序可能也不一致导致的,是正常的。

sink connector配置说明

key nullable default description
connector.class false 实现Connector接口的类名称(包含包名)
filename false sink拉去的数据保存到文件
connect.topicnames false sink需要处理数据消息topics
注:source/sink配置文件说明是以rocketmq-connect-sample为demo,不同source/sink connector配置有差异,请以具体source/sink connector 为准

6.停止connector

GET请求  
http://(your worker ip):(port)/connectors/(connector name)/stop

停止demo中的两个connector
curl     http://127.0.0.1:8082/connectors/fileSinkConnector/stop
curl     http://127.0.0.1:8082/connectors/fileSourceConnector/stop
    

看到以下日志说明connector停止成功了

Source task stop, config:{"properties":{"source-record-converter":"org.apache.rocketmq.connect.runtime.converter.JsonConverter","filename":"/home/zhoubo/IdeaProjects/my-new3-rocketmq-externals/rocketmq-connect/rocketmq-connect-runtime/source-file.txt","task-class":"org.apache.rocketmq.connect.file.FileSourceTask","topic":"fileTopic","connector-class":"org.apache.rocketmq.connect.file.FileSourceConnector","update-timestamp":"1564765189322"}}

7.停止Worker进程

sh bin/connectshutdown.sh

8.日志目录

${user.home}/logs/rocketmqconnect

9.配置文件

持久化配置文件默认目录 /tmp/storeRoot

key description
connectorConfig.json connector配置持久化文件
position.json source connect数据处理进度持久化文件
taskConfig.json task配置持久化文件
offset.json sink connect数据消费进度持久化文件
connectorStatus.json connector 状态持久化文件
taskStatus.json task 状态持久化文件

10.配置说明

可根据使用情况修改 RESTful 端口,storeRoot 路径,Nameserver 地址等信息

文件位置:work 启动目录下 conf/connect-standalone.conf

#current cluster node uniquely identifies
workerId=DEFAULT_WORKER_1

# Http prot for user to access REST API
httpPort=8082

# Local file dir for config store
storePathRootDir=/home/connect/storeRoot

#需要修改为自己的rocketmq nameserver 接入点
# RocketMQ namesrvAddr
namesrvAddr=127.0.0.1:9876  

#用于加载Connector插件,类似于jvm启动加载jar包或者class类,这里目录目录用于放Connector相关的实现插件,
支持文件和目录
# Source or sink connector jar file dir
pluginPaths=rocketmq-connect-sample/target/rocketmq-connect-sample-0.0.1-SNAPSHOT.jar

# 补充:将 Connector 相关实现插件保存到指定文件夹 
# pluginPaths=/usr/local/connector-plugins/*

11.其它restful接口

集群信息

  • 查看集群节点信息:
curl -X GET http://(your worker ip):(port)/getClusterInfo
  • 重新加载Connector插件目录下的Connector包:
curl -X GET http://(your worker ip):(port)/plugin/reload

Connector/Task管理

  • 创建或更新connector(存在且配置不同会更新,不存在创建)
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}
  • Pause(暂停)指定的connector
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/pause
  • Resume(重启)指定的connector
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/resume
  • Pause(暂停)所有的connector
curl -X GET http://(your worker ip):(port)/connectors/pause/all
  • Resume(重启)所有的connector
curl -X GET http://(your worker ip):(port)/connectors/resume/all
  • 停止并删除指定的connector(谨慎使用)
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/stop
  • 停止并删除所有的connector(谨慎使用)
curl -X GET http://(your worker ip):(port)/connectors/stop/all
  • 列举集群中所有connector信息
curl -X GET http://(your worker ip):(port)/connectors/list
  • 根据connectorName获取connector的配置信息
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/config
  • 根据connectorName获取connector的状态
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/status
  • 根据connectorName获取connector下所有task信息
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/tasks
  • 根据connectorName和task id获取task状态
curl -X GET http://(your worker ip):(port)/connectors/{connectorName}/tasks/{task}/status
  • 获取当前worker分配的connector信息
curl -X GET http://(your worker ip):(port)/allocated/connectors
  • 获取当前worker分配的task信息
curl -X GET http://(your worker ip):(port)/allocated/tasks

从内存删除Connector配置信息(谨慎使用):

curl -X GET http://(your worker ip):(port)/connectors/(connector name)/delete

12.Connector通用配置参数说明

key nullable default description
connector.class false 指定插件的class信息
max.tasks false 1 connector下运行的task的数量,根据情况而定
value.converter false org.apache.rocketmq.connect.runtime.converter.record.StringConverter ConnectRecord key的转换器
key.converter false org.apache.rocketmq.connect.runtime.converter.record.StringConverter ConnectRecord value的转换器
transforms true 配置的数据转换器,多个需要用 ","分割
errors.log.include.messages true false 是否将导致故障的connector异常信息纪录在日志中
errors.log.enable true false 如果为true,请将每个错误以及失败操作和问题记录的详细信息写入Connect应用程序日志。默认情况下,这是“false”,因此只报告不可容忍的错误。
errors.retry.timeout true 0 重试超时时间
errors.retry.delay.max.ms true 60000 重试延迟时间
errors.tolerance true ToleranceType.NONE 在Connector操作期间容忍错误的行为。“NONE”是默认值,表示任何错误都将导致连接器任务立即失败;"ALL“更改行为以跳过有问题的记录。

Transform配置案例[单个配置]

"transforms": "Replace",
"transforms.Replace.field.pattern": "company",
"transforms.Replace.field.replacement": "company02",
"transforms.Replace.class": "org.apache.rocketmq.connect.transforms.PatternRename$Value",

Transform配置案例[多个配置],会按照配置顺序依次执行

"transforms": "Replace, Replace02",
"transforms.Replace.field.pattern": "company",
"transforms.Replace.field.replacement": "company02",
"transforms.Replace.class": "org.apache.rocketmq.connect.transforms.PatternRename$Value",
"transforms.Replace02.field.pattern": "company02",
"transforms.Replace02.field.replacement": "company03",
"transforms.Replace02.class": "org.apache.rocketmq.connect.transforms.PatternRename$Value",

1.transforms: 为固定配置,不可变

2.Replace, Replace02: 为配置名称,可自定义, 多个用","分割,若为多个,下面配置均需重复配置

3.transforms.${transform-name}.class: 用此配置来表示transform的class

4.transforms.${transform-name}.{config.key}: transform中使用的多个配置项;

Transform接口

package io.openmessaging.connector.api.component;

import io.openmessaging.KeyValue;
import io.openmessaging.connector.api.data.ConnectRecord;

public interface Transform<R extends ConnectRecord> extends Component {
    default void validate(KeyValue config) {
    }

    R doTransform(R var1);
}
  1. 自定义Transform只需要实现以上接口即可,将自定义包按照到 [pluginPaths]指定的插件目录下面即可;

  2. 平台已经实现的transform在 transforms module下面,欢迎大家定义和扩展更加丰富的transform库

org.apache.rocketmq.connect.transforms.ChangeCase$Key org.apache.rocketmq.connect.transforms.ChangeCase$Value org.apache.rocketmq.connect.transforms.ExtractNestedField$Value org.apache.rocketmq.connect.transforms.ExtractNestedField$Key org.apache.rocketmq.connect.transforms.PatternRename$Key org.apache.rocketmq.connect.transforms.PatternRename$Value org.apache.rocketmq.connect.transforms.PatternFilter$Key org.apache.rocketmq.connect.transforms.PatternFilter$Value org.apache.rocketmq.connect.transforms.SetMaximumPrecision$Key org.apache.rocketmq.connect.transforms.SetMaximumPrecision$Value

Source Connector特殊配置

key nullable default description
connect.topicname true 指定数据写入的topic,若不配置则直接取position中key为topic的值,若取不到则抛出异常
ordering.msg.enable true false 当目标集群不为rocketmq 5.x时,顺序消息会乱序,若设置为true,才能支持顺序,但会降低connector性能

Sink Connector特殊配置

key nullable default description
connect.topicnames false sink订阅的topic配置多个用","分割
task.group.id true connect-{connectName} sink订阅topic的group id
errors.deadletterqueue.topic.name true 错误队列的topic配置
errors.deadletterqueue.read.queue.nums true 8 错误队列创建时指定读的队列数
errors.deadletterqueue.write.queue.nums true 8 错误队列创建时指定写的队列数
errors.deadletterqueue.context.properties.enable true false 上报错误数据是否包含错误的详细的属性信息

13.Worker配置参数说明

❌ 表示该模式下不需要配置此选项 ✅ 表示该模式下配置生效

key nullable standalone distributed default description
workerId false ✅ ️ DEFAULT_WORKER_1 集群节点唯一标识
namesrvAddr false localhost:9876 RocketMQ Name Server地址列表,多个NameServer地址用分号隔开
httpPort false 8082 runtime提供restful接口服务端口
pluginPaths false source或者sink目录,启动runtime时加载
storePathRootDir true /tmp/connectorStore 持久化文件保存目录
positionStoreTopic true connector-position-topic source端position变更通知topic
positionPersistInterval true 20s source端持久化position数据间隔
configStoreTopic true connector-config-topic 集群connector配置变更通知topic
configPersistInterval true 20s 集群中配置信息持久化间隔
connectStatusTopic true connect-status-topic connector和task状态变更通知
statePersistInterval true 20s connector及task状态持久化间隔
rmqProducerGroup true defaultProducerGroup Producer组名,多个Producer如果属于一个应用,发送同样的消息,则应该将它们归为同一组
rmqConsumerGroup true defaultConsumerGroup Consumer组名,多个Consumer如果属于一个应用,发送同样的消息,则应该将它们归为同一组
maxMessageSize true 4MB RocketMQ最大消息大小
operationTimeout true 3s Producer发送消息超时时间
rmqMaxRedeliveryTimes true 最大重新消费次数
rmqMessageConsumeTimeout true 3s Consumer超时时间
rmqMaxConsumeThreadNums true 32 Consumer客户端最大线程数
rmqMinConsumeThreadNums true 1 Consumer客户端最小线程数
allocTaskStrategy true org.apache.rocketmq.connect.
runtime.service.strategy.
DefaultAllocateConnAndTaskStrategy
负载均衡策略类
offsetCommitTimeoutMsConfig true 5000L source和sink offset提交超时时间
offsetCommitIntervalMsConfig true 60000L source和sink offset提交间隔时间配置
keyConverter true org.apache.rocketmq.connect.runtime.converter.record.StringConverter 集群配置默认 key 转换器
valueConverter true org.apache.rocketmq.connect.runtime.converter.record.StringConverter 集群配置默认 Value 转换器

allocTaskStrategy说明

该参数默认可省略,这是一个可选参数,目前选项如下:

  • 默认值
org.apache.rocketmq.connect.runtime.service.strategy.DefaultAllocateConnAndTaskStrategy
  • 一致性Hash
org.apache.rocketmq.connect.runtime.service.strategy.AllocateConnAndTaskStrategyByConsistentHash

更多集群和负载均衡文档

负载均衡

14.runtime支持JVM参数说明

key nullable default description
rocketmq.runtime.cluster.rebalance.waitInterval true 20s 负载均衡间隔
rocketmq.runtime.max.message.size true 4M Runtime限制最大消息大小
virtualNode true 1 一致性hash负载均衡的虚拟节点数
consistentHashFunc true MD5Hash 一致性hash负载均衡算法实现类

VirtualNode

一致性hash中虚拟节点数

consistentHashFunc

hash算法具体实现类,可以自己实现,在后续版本中会增加更多策略,该类应该实现

org.apache.rocketmq.common.consistenthash.HashFunction;

package org.apache.rocketmq.common.consistenthash;

public interface HashFunction {
    long hash(String var1);
}

默认情况下采用的是MD5Hash算法

//default hash function
private static class MD5Hash implements HashFunction {
    MessageDigest instance;

    public MD5Hash() {
        try {
            instance = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
        }
    }

    @Override
    public long hash(String key) {
        instance.reset();
        instance.update(key.getBytes());
        byte[] digest = instance.digest();

        long h = 0;
        for (int i = 0; i < 4; i++) {
            h <<= 8;
            h |= ((int) digest[i]) & 0xFF;
        }
        return h;
    }
}

开发指南

如何在IDE中启动Connect Worker ?

单机模式启动Connect Worker

Main Class配置:

org.apache.rocketmq.connect.runtime.StandaloneConnectStartup

img_2.png

Program arguments配置

-c ${user path}/rocketmq-connect/distribution/conf/connect-standalone.conf

Environment variables配置

CONNECT_HOME=${user path}/rocketmq-connect/distribution

###集群模式启动Connect Worker

Main Class配置

org.apache.rocketmq.connect.runtime.DistributedConnectStartup

Program arguments配置

-c ${user path}/rocketmq-connect/distribution/conf/connect-distributed.conf

Environment variables配置

CONNECT_HOME=${user path}/rocketmq-connect/distribution

rocketmq-connect's People

Contributors

chuenfaiy avatar clementiv avatar dependabot[bot] avatar doubledimple avatar duhenglucky avatar fireroundgithub avatar git-yang avatar githublaohu avatar gripson avatar imaffe avatar ingdex avatar jashinck avatar joecarf avatar jonnxu avatar lazyfighter avatar li-xiao-shuang avatar linfan avatar lizhiboo avatar odbozhou avatar oliverwqcwrw avatar oudb avatar rongtongjin avatar slideee avatar sunxi92 avatar sunxiaojian avatar xujianhai666 avatar yiliuchen avatar yuchenlichuck avatar zhangjidi2016 avatar zhaohai666 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rocketmq-connect's Issues

rocketmq-replicator optimization

After rocketmq-replicator adapt to the new conenct api merge, the pull code is run and the following problems are found:

Fixed:

  1. The message content is inconsistent. The message content after synchronization is {"MessageExt": "original message content "}
  2. Message attributes are not synchronized

Function:

  1. When synchronizing messages from the source cluster to the target cluster, we can define filtering rules to synchronize only the filtered messages

Optimization:

  1. Keep replicator and Runtime versions of some of the same dependencies the same to prevent conflicts

replicator适配了新的connect api合并后,拉取代码运行了下,主要发现以下几点问题:

修复:
1.消息同步内容不一致,同步后的消息内容为{"MessageExt": "原消息内容"}
2.消息属性没有同步

功能:
1.源和目标集群消息同步时,可以定义过滤规则,只同步过滤后的消息

优化:
1.保持replicator和runtime中的一些相同依赖包版本相同,防止冲突

kafka-connect插件在maintainTaskState时候,因为类加载器问题导致run不起来

image

如图画框的部分,Future future = taskExecutor.submit(workerSourceTask); 提交到线程池后,此时线程池的类加载器是AppclassLoader,而不是pluginClassLoader,会导致WorkerSourceTask 的run方法中在启动kafkaconsumer时候报错,我报的时候加载key和value的反序列化类错误了。这个类得用pluginClassLoader加载而不能用appClassLoader加载。

FileSourceConnector cannot send data to a topic specified in RocketMQ

BUG REPORT

  1. Please describe the issue you observed:

When I test the demo rocketmq-connect-sample, I find that there is no data in the topic fileTopic.

  • What did you do (The steps to reproduce)?

follow the link:
https://rocketmq-1.gitbook.io/rocketmq-connector/quick-start/runtime-qs
https://rocketmq-1.gitbook.io/rocketmq-connector/quick-start/file-connector

  • What is expected to see?
    (1)The topic fileTopic have the data
    (2)FileSinkConnector can transfer data to specified file

  • What did you see instead?

image

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

activemq-connent test class error

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?
    activemq-connent test class error

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

SourceTask and SinkTask API Optimization suggestions

  1. API版本 0.1.2

  2. 问题一:SourceTask和SinkTask API中建议把 init、validate、start合并起来比较好,
    原因是,在用新的api构造插件的时候发现,由于不太清楚init,validate,start的执行顺序,所以就查了一下源码,困惑的是这个调用顺序是怎么样的,但其实写插件的人可能不太关心这个,所以方法多了反而增加了写插件的成本,建议只提供strat接口给用户实现,把validate可以放在配置类加载时实现,init可以留给写插件的人自己抽象;

3.问题二:task、connector、transform都实现了Component 接口,接口中透出了validate方法但实际发现task调用中是没有用到的,如下图:

image

这样会造成每个实现的sourceTask和sinkTask会有个空方法,造成疑惑,是否可以在SinkTask和SourceTask抽象类中隐去

RmqMetaReplicator throw NullPointerException

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.
    srcMQAdminExt and targetMQAdminExt not init

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?
    RmqMetaReplicator can't use

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

Method threw StackOverflowError exception when in IDE debug

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

After I upgraded openconnect api 0.1.2, I debugged the following code in the IDE. In debug mode, the debugger will call toString() of this object, resulting in an error. The reason is that the two classes Schma and Field depend on each other, resulting in a circular reference chain. When using the toString() method, the method of the reference object will be continuously called circularly, resulting in stack overflow.

image

image

cannot find class SourceConnector

Exception occurred while servicing http-request
java.lang.NoClassDefFoundError: io/openmessaging/connector/api/source/SourceConnector

update connect api to 0.1.2

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

Connect plugins supports CDC mode, such as MySQL binlog

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.
    https://debezium.io/

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

message synchronization support up to the queue level

Now message synchronization is only supported to the topic level. The runtime does not specify the target queue when sending the message, so the queue after the message is sent to the target topic is random. This causes the messages of the source topic to be inconsistently queued in the target topic, which will cause confusion in message consumption after synchronizing the ConsumerOffset. Therefore, you can encapsulate SourceTask and SinkTask through WorkerDirectTask, specify the queue where the source message is located in SinkTask, and send the source message to the specified queue of the target topic through SinkTask. Want to add a SinkTask to RmqSourceReplicator to solve this problem, what do you think?

In this way, the synchronization of messages at the topic level can be solved by the current configuration, or the synchronization at the queue level can be solved by configuring WorkerDirectTask.

现在消息同步只支持到topic级别,发送消息时runtime并没有指定目标队列,所以消息发送到目标topic后的队列是随机的。这样就造成了源topic的消息在目标topic中队列不一致,这样在同步ConsumerOffset后会造成消息消费的错乱。因此可以通过WorkerDirectTask封装SourceTask和SinkTask,在SinkTask中指定源消息所在的队列,通过SinkTask将源消息发送到目标topic的指定队列。想为RmqSourceReplicator添加一个SinkTask去解决这个问题,大家怎么认为呢。

这样,既可以通过当前的配置解决消息在topic级别之间的同步,也可以通过配置WorkerDirectTask解决queue级别的同步。

使用rocketmq-replicator运行到connect-runtime环境中调用api接口出现问题

restful接口调用:
http://127.0.0.1:8088/connectors/rocketmq-replicator-name01?config={
"connector-class":"org.apache.rocketmq.replicator.RmqSourceReplicator",
"source-rocketmq":"10.174.32.22:1074",
"source-acl-enable":"true",
"source-access-key":"rocketmq2",
"source-secret-key":"12345678",
"target-rocketmq":"10.174.32.42:1078",
"target-acl-enable":"true",
"target-access-key":"rocketmq2",
"target-secret-key":"12345678",
"replicator-store-topic":"replicatorTopic",
"source-group":"TopicTest-group",
"task-divide-strategy":"0",
"white-list":"TopicTest,TopicTest2",
"source-cluster":"rocketmq-connect-replicator01",
"target-cluster":"rocketmq-connect-replicator02",
"task-parallelism":"2",
"source-record-converter":"org.apache.rocketmq.connect.runtime.converter.JsonConverter"
}

报错信息:
2022-05-10 17:04:38 INFO qtp1839337592-110 - config: { "connector-class":"org.apache.rocketmq.replicator.RmqSourceReplicator", "source-rocketmq":"10.174.32.22:1074", "source-acl-enable": "true", "source-access-key": "rocketmq2", "source-secret-key": "12345678", "target-rocketmq":"10.174.32.42:1078", "target-acl-enable": "true", "target-access-key": "rocketmq2", "target-secret-key": "12345678", "replicator-store-topic":"replicatorTopic", "connect-topicname":"replicatorTopic", "source-group": "TopicTest-group", "task-divide-strategy":"0", "white-list":"TopicTest,TopicTest2", "source-cluster":"rocketmq-connect-replicator01", "target-cluster":"rocketmq-connect-replicator02", "task-parallelism":"2", "source-record-converter":"org.apache.rocketmq.connect.runtime.converter.JsonConverter" }
2022-05-10 17:04:38 ERROR qtp1839337592-110 - Handle createConnector error .
java.lang.ClassNotFoundException: org.apache.rocketmq.replicator.RmqSourceReplicator
at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.rocketmq.connect.runtime.service.ConfigManagementServiceImpl.putConnectorConfig(ConfigManagementServiceImpl.java:184)
at org.apache.rocketmq.connect.runtime.rest.RestHandler.handleCreateConnector(RestHandler.java:146)
at io.javalin.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:22)
at io.javalin.Javalin.lambda$addHandler$0(Javalin.java:606)
at io.javalin.core.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:46)
at io.javalin.core.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:17)
at io.javalin.core.JavalinServlet$service$1.invoke(JavalinServlet.kt:143)
at io.javalin.core.JavalinServlet$service$2.invoke(JavalinServlet.kt:41)
at io.javalin.core.JavalinServlet.service(JavalinServlet.kt:107)
at io.javalin.core.util.JettyServerUtil$initialize$httpHandler$1.doHandle(JettyServerUtil.kt:72)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61)
at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:174)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:502)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:750)

fix the error when building the project

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?
    build the project
  • What is expected to see?
    build success
  • What did you see instead?
    image
  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

some class not apache licence case maven to execute command error

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

quickstart gitbook has some wrong messages

i found some wrong messages when i try to reaapear the example followinig the guide quick-start

  1. “两套RocketMQ集群环境”应该改为“一套RocketMQ集群环境”,因为file的record发送和file的record消费是一套集群, 截屏2022-05-03 下午1 11 32
  2. ”source connector启动“目录下的”topic“都应该改为“connect-topicname”

截屏2022-05-03 下午1 19 34

3. “sink connector启动”目录下的”topic“都应该改为“connect-topicname”

finally i want to show commond line to start the file-connector, if anyone needed

  1. wget --post-data='{"connector-class":"org.apache.rocketmq.connect.file.FileSourceConnector","connect-topicname":"fileTopic","filename":"/home/lighthouse/source-file.txt","source-record-converter":"org.apache.rocketmq.connect.runtime.converter.JsonConverter"}' http://localhost:8081/connectors/fileConnectorSource

  2. wget --post-data='{"connector-class":"org.apache.rocketmq.connect.file.FileSinkConnector","connect-topicname":"fileTopic","filename":"/home/lighthouse/sink-file.txt","source-record-converter":"org.apache.rocketmq.connect.runtime.converter.JsonConverter"}' http://localhost:8081/connectors/fileConnectorSink

Connect Runtime standalone mode support

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

FEATURE REQUEST

  1. Please describe the feature you are requesting.

RocketMQ Connect Runtime currently only supports cluster mode startup, which is not very friendly to development and testing. RocketMQ Connect Runtime needs to support standalone mode, which is convenient for development and testing

  1. Provide any additional detail on your proposed use case for this feature.

  2. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  3. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

runtime service support spi

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

BUG REPORT

  1. Please describe the issue you observed:
  • What did you do (The steps to reproduce)?

  • What is expected to see?

  • What did you see instead?

  1. Please tell us about your environment:

  2. Other information (e.g. detailed explanation, logs, related issues, suggestions on how to fix, etc):

FEATURE REQUEST

  1. Please describe the feature you are requesting.

  2. Provide any additional detail on your proposed use case for this feature.

  3. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  4. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

WorkerDirectTask put position may partially store information lost

For the method of sendRecord in WorkerDirectTask, there may be multiple sets of RecordPartition and RecordOffset in sourceDataEntries, so these two variables should be inside the loop body and can be stored by Map. At present, writing this way will cause these two variables to be overwritten all the time, resulting in partial The storage of the offset is abnormal

image

For example, if a topic has 4 queues that need to be synchronized, then only the offset of one of the queues is stored at the end

B96E3A9160F5529AB86AA31AA0F91F36
image

after repair

image

rocketmq-connect-kafka 在被runtime的pluginClassLoader加载时候报class cast exception

image
报错 类转型失败
org.apache.rocketmq.connect.kafka.connector.KafkaSourceConnector 无法转型为io.openmessaging.connector.api.Connector

看起来像是类加载器不同导致的问题,因为io.openmessaging.connector.api.Connector 是rutime启动时候加载的,但是KafkaSourceConnector 是 pluginClassLoader加载器加载的。

请问这个怎么办?

[Part 3] Optimize worker sink task

optimize worker sink task
Task fragmentation optimization
pull msg error pause
commit offset optimize
reset offset support
optimize pull consumer to pull msg
save offset replace msg sync to rocketmq offset manager
try cache optimize

openmessaging-connector version is wrong

Could not resolve dependencies for project org.apache.rocketmq:rocketmq-connect-sample:jar:0.0.1-SNAPSHOT: Could not find artifact io.openmessaging:openmessaging-connector:jar:0.1.2-SNAPSHOT

OpenMLDB Sink Connector

The issue tracker is used for bug reporting purposes ONLY whereas feature request needs to follow the RIP process. To avoid unnecessary duplication, please check whether there is a previous issue before filing a new one.

It is recommended to start a discussion thread in the mailing lists in cases of discussing your deployment plan, API clarification, and other non-bug-reporting issues.
We welcome any friendly suggestions, bug fixes, collaboration, and other improvements.

Please ensure that your bug report is clear and self-contained. Otherwise, it would take additional rounds of communication, thus more time, to understand the problem itself.

Generally, fixing an issue goes through the following steps:

  1. Understand the issue reported;
  2. Reproduce the unexpected behavior locally;
  3. Perform root cause analysis to identify the underlying problem;
  4. Create test cases to cover the identified problem;
  5. Work out a solution to rectify the behavior and make the newly created test cases pass;
  6. Make a pull request and go through peer review;

As a result, it would be very helpful yet challenging if you could provide an isolated project reproducing your reported issue. Anyway, please ensure your issue report is informative enough for the community to pick up. At a minimum, include the following hints:

FEATURE REQUEST

  1. Please describe the feature you are requesting.

https://openmldb.ai/

  1. Provide any additional detail on your proposed use case for this feature.

  2. Indicate the importance of this issue to you (blocker, must-have, should-have, nice-to-have). Are you currently using any workarounds to address this issue?

  3. If there are some sub-tasks involved, use -[] for each sub-task and create a corresponding issue to map to the sub-task:

The rocketmq connect HTTP package cannot be loaded when starting through the rocketmq connect runtime.

报错信息如下 :
Connected to the target VM, address: '127.0.0.1:57904', transport: 'socket'
10:02:05.114 [main] INFO o.a.r.connect.runtime.utils.Plugin - Loading plugin from: D:\connector-plugins\rocketmq-connect-http-0.0.1-SNAPSHOT-jar-with-dependencies.jar
10:02:05.121 [main] DEBUG o.a.r.connect.runtime.utils.Plugin - Loading plugin urls: [file:/D:/connector-plugins/rocketmq-connect-http-0.0.1-SNAPSHOT-jar-with-dependencies.jar]
10:02:05.211 [main] DEBUG org.reflections.Reflections - going to scan these urls: [file:/D:/connector-plugins/rocketmq-connect-http-0.0.1-SNAPSHOT-jar-with-dependencies.jar]
10:02:05.223 [org.reflections-scanner-1] DEBUG org.reflections.Reflections - [Thread[org.reflections-scanner-1,5,main]] scanning file:/D:/connector-plugins/rocketmq-connect-http-0.0.1-SNAPSHOT-jar-with-dependencies.jar
10:02:05.682 [main] INFO org.reflections.Reflections - Reflections took 451 ms to scan 1 urls, producing 341 keys and 928 values [using 8 cores]
10:02:05.689 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.text.Format
10:02:05.689 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Cloneable -> java.text.Format
10:02:05.692 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Runnable -> java.lang.Thread
10:02:05.695 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.ThreadLocal -> java.lang.InheritableThreadLocal
10:02:05.695 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Calendar -> java.util.GregorianCalendar
10:02:05.695 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.util.Calendar
10:02:05.695 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Cloneable -> java.util.Calendar
10:02:05.695 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Comparable -> java.util.Calendar
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.List -> java.util.concurrent.CopyOnWriteArrayList
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Collection -> java.util.List
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Iterable -> java.util.Collection
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.RandomAccess -> java.util.concurrent.CopyOnWriteArrayList
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Cloneable -> java.util.concurrent.CopyOnWriteArrayList
10:02:05.697 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.util.concurrent.CopyOnWriteArrayList
10:02:05.698 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.HashMap -> java.util.LinkedHashMap
10:02:05.698 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.AbstractMap -> java.util.HashMap
10:02:05.698 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Map -> java.util.AbstractMap
10:02:05.699 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Map -> java.util.HashMap
10:02:05.699 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Cloneable -> java.util.HashMap
10:02:05.699 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.util.HashMap
10:02:05.699 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Map -> java.util.LinkedHashMap
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Exception -> java.io.IOException
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Throwable -> java.lang.Exception
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.lang.Throwable
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype org.xml.sax.EntityResolver -> org.xml.sax.helpers.DefaultHandler
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype org.xml.sax.DTDHandler -> org.xml.sax.helpers.DefaultHandler
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype org.xml.sax.ContentHandler -> org.xml.sax.helpers.DefaultHandler
10:02:05.701 [main] DEBUG org.reflections.Reflections - expanded subtype org.xml.sax.ErrorHandler -> org.xml.sax.helpers.DefaultHandler
10:02:05.702 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.reflect.Type -> java.lang.reflect.ParameterizedType
10:02:05.717 [main] WARN org.reflections.Reflections - could not get type for name javax.ws.rs.ext.MessageBodyReader from any class loader
org.reflections.ReflectionsException: could not get type for name javax.ws.rs.ext.MessageBodyReader
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.ext.MessageBodyReader
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.718 [main] WARN org.reflections.Reflections - could not get type for name org.springframework.http.converter.GenericHttpMessageConverter from any class loader
org.reflections.ReflectionsException: could not get type for name org.springframework.http.converter.GenericHttpMessageConverter
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.http.converter.GenericHttpMessageConverter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.720 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Iterator -> java.util.ListIterator
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.InputStream -> java.io.ObjectInputStream
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Closeable -> java.io.InputStream
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.AutoCloseable -> java.io.Closeable
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.ObjectInput -> java.io.ObjectInputStream
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.DataInput -> java.io.ObjectInput
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.AutoCloseable -> java.io.ObjectInput
10:02:05.721 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.ObjectStreamConstants -> java.io.ObjectInputStream
10:02:05.723 [main] WARN org.reflections.Reflections - could not get type for name javax.ws.rs.ext.MessageBodyWriter from any class loader
org.reflections.ReflectionsException: could not get type for name javax.ws.rs.ext.MessageBodyWriter
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.ext.MessageBodyWriter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.724 [main] WARN org.reflections.Reflections - could not get type for name javax.jms.MessageListener from any class loader
org.reflections.ReflectionsException: could not get type for name javax.jms.MessageListener
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.jms.MessageListener
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.726 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.Collection -> java.util.AbstractCollection
10:02:05.726 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Iterable -> java.util.Collection
10:02:05.727 [main] DEBUG org.reflections.Reflections - expanded subtype java.util.EventListener -> javax.servlet.ServletContextListener
10:02:05.729 [main] WARN org.reflections.Reflections - could not get type for name org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice from any class loader
org.reflections.ReflectionsException: could not get type for name org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.731 [main] WARN org.reflections.Reflections - could not get type for name retrofit2.Converter from any class loader
org.reflections.ReflectionsException: could not get type for name retrofit2.Converter
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: retrofit2.Converter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.731 [main] DEBUG org.reflections.Reflections - expanded subtype java.io.Serializable -> java.util.TimeZone
10:02:05.731 [main] DEBUG org.reflections.Reflections - expanded subtype java.lang.Cloneable -> java.util.TimeZone
10:02:05.735 [main] WARN org.reflections.Reflections - could not get type for name org.springframework.messaging.converter.AbstractMessageConverter from any class loader
org.reflections.ReflectionsException: could not get type for name org.springframework.messaging.converter.AbstractMessageConverter
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.messaging.converter.AbstractMessageConverter
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.740 [main] WARN org.reflections.Reflections - could not get type for name javax.mail.Authenticator from any class loader
org.reflections.ReflectionsException: could not get type for name javax.mail.Authenticator
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.mail.Authenticator
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.741 [main] WARN org.reflections.Reflections - could not get type for name javax.ws.rs.core.Feature from any class loader
org.reflections.ReflectionsException: could not get type for name javax.ws.rs.core.Feature
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: javax.ws.rs.core.Feature
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted
10:02:05.743 [main] WARN org.reflections.Reflections - could not get type for name org.springframework.web.socket.sockjs.frame.AbstractSockJsMessageCodec from any class loader
org.reflections.ReflectionsException: could not get type for name org.springframework.web.socket.sockjs.frame.AbstractSockJsMessageCodec
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:312) ~[reflections-0.9.12.jar:na]
at org.reflections.Reflections.expandSuperTypes(Reflections.java:382) [reflections-0.9.12.jar:na]
at org.reflections.Reflections.(Reflections.java:140) [reflections-0.9.12.jar:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin$PluginReflections.(Plugin.java:116) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.doLoad(Plugin.java:92) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.registerPlugin(Plugin.java:158) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.loadPlugin(Plugin.java:73) [classes/:na]
at org.apache.rocketmq.connect.runtime.utils.Plugin.initPlugin(Plugin.java:63) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectController.(ConnectController.java:117) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.createConnectController(ConnectStartup.java:101) [classes/:na]
at org.apache.rocketmq.connect.runtime.ConnectStartup.main(ConnectStartup.java:50) [classes/:na]
Caused by: java.lang.ClassNotFoundException: org.springframework.web.socket.sockjs.frame.AbstractSockJsMessageCodec
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_251]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_251]
at org.apache.rocketmq.connect.runtime.utils.PluginClassLoader.loadClass(PluginClassLoader.java:66) ~[classes/:na]
at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_251]
at org.reflections.ReflectionUtils.forName(ReflectionUtils.java:310) ~[reflections-0.9.12.jar:na]
... 10 common frames omitted

以下是配置信息 :
image

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.