GitHub user CuSO41108 closed a discussion: 我在使用 RocketMQ 5.0.8 Java 客户端时,在 IDEA
中遇到了 Cannot resolve symbol 'MessageModel' 的错误。我已经查过ai且尝试了清理 Maven 缓存和 IDEA
缓存,但问题仍然存在。请问这可能是什么原因?
package com.itheima;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Collections;
import org.apache.rocketmq.client.apis.ClientConfiguration;
import org.apache.rocketmq.client.apis.ClientException;
import org.apache.rocketmq.client.apis.ClientServiceProvider;
import org.apache.rocketmq.client.apis.consumer.ConsumeResult;
import org.apache.rocketmq.client.apis.consumer.FilterExpression;
import org.apache.rocketmq.client.apis.consumer.FilterExpressionType;
import org.apache.rocketmq.client.apis.consumer.PushConsumer;
import org.apache.rocketmq.client.apis.consumer.MessageModel;//Cannot resolve
symbol 'MessageModel
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class PushConsumerExample {
private static final Logger logger =
LoggerFactory.getLogger(PushConsumerExample.class);
private PushConsumerExample() {
}
public static void main(String[] args) throws ClientException, IOException,
InterruptedException {
final ClientServiceProvider provider =
ClientServiceProvider.loadService();
String endpoints = "192.168.40.128:8081";
ClientConfiguration clientConfiguration =
ClientConfiguration.newBuilder()
.setEndpoints(endpoints)
.build();
String tag = "*";
FilterExpression filterExpression = new FilterExpression(tag,
FilterExpressionType.TAG);
String consumerGroup = "MyTestBroadcastConsumerGroup";
String topic = "TestTopic";
PushConsumer pushConsumer = provider.newPushConsumerBuilder()
.setClientConfiguration(clientConfiguration)
.setConsumerGroup(consumerGroup)
.setMessageModel(MessageModel.BROADCASTING)//Cannot resolve
method 'setMessageModel' in 'PushConsumerBuilder'
.setSubscriptionExpressions(Collections.singletonMap(topic,
filterExpression))
.setMessageListener(messageView -> {
ByteBuffer bodyBuffer = messageView.getBody();
byte[] bodyBytes = new byte[bodyBuffer.remaining()];
bodyBuffer.get(bodyBytes);
String messageBody = new String(bodyBytes);
logger.info("Consume message successfully,
messageId={}, body={}",
messageView.getMessageId(), messageBody);
return ConsumeResult.SUCCESS;
})
.build();
logger.info("Consumer started, waiting for messages...");
Thread.sleep(Long.MAX_VALUE);
}
}
这是我的pom.xml:
<dependencies>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client-java</artifactId>
<version>5.0.8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version> <!-- Use a recent stable version -->
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.2.11</version> <!-- Use a recent stable version -->
</dependency>
</dependencies>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
GitHub link: https://github.com/apache/rocketmq/discussions/9613
----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: [email protected]