Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
IntelliJ:未找到Java类,但代码已成功部署_Java_Apache Kafka_Kafka Consumer Api - Fatal编程技术网

IntelliJ:未找到Java类,但代码已成功部署

IntelliJ:未找到Java类,但代码已成功部署,java,apache-kafka,kafka-consumer-api,Java,Apache Kafka,Kafka Consumer Api,我有RESTAPI,我想在一些API调用中使用Kafka流。我能够将代码部署到JBoss服务器,没有任何错误,但在执行api调用时,我遇到以下错误: org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: org/apache/kafka/clients/consumer/KafkaConsumer 我可以在IntelliJ的外部库中看到该类。这是我的资源类: package com.company.r

我有RESTAPI,我想在一些API调用中使用Kafka流。我能够将代码部署到JBoss服务器,没有任何错误,但在执行api调用时,我遇到以下错误:

org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: org/apache/kafka/clients/consumer/KafkaConsumer

我可以在IntelliJ的外部库中看到该类。这是我的资源类:

package com.company.rest;

import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.util.Properties;
import java.util.Arrays;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import java.util.function.Supplier;

@Path("topic")
public class TopicResource {
    private final static String TOPIC = "MyTopic";
    private final static String BOOTSTRAP_SERVERS = "localhost:9092";

    @GET
    @Path("/{name}")
    @Produces(MediaType.TEXT_PLAIN)
    public void getTopic(@PathParam("name") String name) {

        Properties props = new Properties();
        props.put("bootstrap.servers", "localhost:9092");
        props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
        props.put("value.deserializer", "SupplierDeserializer");

        KafkaConsumer<String, Supplier> consumer = new KafkaConsumer<String, Supplier>(props);

        consumer.subscribe(Arrays.asList("MyTopic"));

        while (true){
            ConsumerRecords<String, Supplier> records = consumer.poll(100);
            for (ConsumerRecord<String, Supplier> record : records){
                System.out.println("Print some text");
            }
        }
    }
}
package com.company.rest;
导入javax.ws.rs.*;
导入javax.ws.rs.core.MediaType;
导入java.util.Properties;
导入java.util.array;
导入org.apache.kafka.clients.consumer.KafkaConsumer;
导入org.apache.kafka.clients.consumer.ConsumerRecords;
导入org.apache.kafka.clients.consumer.ConsumerRecord;
导入java.util.function.Supplier;
@路径(“主题”)
公共类TopicResource{
私有最终静态字符串TOPIC=“MyTopic”;
私有最终静态字符串引导\u SERVERS=“localhost:9092”;
@得到
@路径(“/{name}”)
@生成(MediaType.TEXT\u PLAIN)
public void getTopic(@PathParam(“name”)字符串名){
Properties props=新属性();
put(“bootstrap.servers”,“localhost:9092”);
put(“key.deserializer”、“org.apache.kafka.common.serialization.StringDeserializer”);
props.put(“value.deserializer”、“SupplierDeserializer”);
卡夫卡消费者=新卡夫卡消费者(道具);
consumer.subscribe(Arrays.asList(“MyTopic”);
while(true){
ConsumerRecords记录=consumer.poll(100);
对于(消费者记录:记录){
System.out.println(“打印一些文本”);
}
}
}
}
这是我的pom.xml文件:

<dependencies>
    <!-- https://mvnrepository.com/artifact/javax.ejb/javax.ejb-api -->
    <dependency>
        <groupId>javax.ejb</groupId>
        <artifactId>javax.ejb-api</artifactId>
        <version>3.2</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-clients -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-clients</artifactId>
        <version>2.0.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka-streams -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-streams</artifactId>
        <version>2.0.0</version>
    </dependency>
</dependencies>

javax.ejb
javax.ejb-api
3.2
javax.servlet
javax.servlet-api
4.0.0
假如
爪哇
JavaEEAPI
6
假如
javax.ws.rs
javax.ws.rs-api
2
com.google.code.gson
格森
2.8.5
org.apache.kafka
卡夫卡客户
2.0.0
org.apache.kafka
卡夫卡河
2.0.0
我不确定我是否做错了什么,或者它与IntelliJ配置有关。我们将非常感谢您的帮助。
提前谢谢

该错误是由于类不在类加载器中,或者可能不在JVM中。这意味着应用程序不在服务器上执行,或者您无权访问它。应用程序需要提供一些JAR/类。编辑:jar在您的war文件中吗?您可以删除kafka streams jar,因为您不使用它,然后重试