Spring集成Kafka配置 - Eclipse中的错误

时间:2016-10-24 04:55:00

标签: spring-integration apache-kafka

我使用Eclipse作为IDE。我有一个非常基本的配置XML文件,它不会验证,因此阻止Eclipse运行任何东西。我错过了什么?

这里是验证错误(我在问题视图中看到): enter image description here

这是我的配置xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
    xmlns:int-kafka="http://www.springframework.org/schema/integration/kafka"
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="http://www.springframework.org/schema/integration/kafka http://www.springframework.org/schema/integration/kafka/spring-integration-kafka.xsd
        http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">

    <int:channel id="inputToKafka" />
    <int-kafka:outbound-channel-adapter
        id="kafkaOutboundChannelAdapter" kafka-template="template"
        auto-startup="false" channel="inputToKafka" topic="replicated-topic-1"
        message-key-expression="'bar'" partition-id-expression="2">
    </int-kafka:outbound-channel-adapter>

    <bean id="template" class="org.springframework.kafka.core.KafkaTemplate">
        <constructor-arg>
            <bean class="org.springframework.kafka.core.DefaultKafkaProducerFactory">
                <constructor-arg>
                    <map>
                        <entry key="bootstrap.servers" value="192.168.33.21:9092,192.168.33.22:9092,192.168.33.23:9092" />
                    </map>
                </constructor-arg>
            </bean>
        </constructor-arg>
    </bean>

    <int-kafka:message-driven-channel-adapter
        id="kafkaListener"
        listener-container="listenerContainer"
        auto-startup="false"
        phase="100"
        send-timeout="5000"
        channel="nullChannel"
        error-channel="errorChannel" />

    <bean id="listenerContainer" class="org.springframework.kafka.listener.KafkaMessageListenerContainer">
        <constructor-arg>
            <bean class="org.springframework.kafka.core.DefaultKafkaConsumerFactory">
                <constructor-arg>
                    <map>
                        <entry key="bootstrap.servers" value="192.168.33.21:9092,192.168.33.22:9092,192.168.33.23:9092" />
                    </map>
                </constructor-arg>
            </bean>
        </constructor-arg>
        <constructor-arg name="topics" value="replicated-topic-1" />
    </bean>

</beans>

1 个答案:

答案 0 :(得分:1)

如果这些只是虚假错误且应用运行正常,则只是意味着您正在解析spring-integration-core架构here的在线版本。请参阅该架构顶部的重要说明,了解它不是当前版本的原因。

您可以通过使用spring-eclipse(例如STS或Spring IDE插件)解决这个问题,并在项目中设置spring属性,以便从类路径而不是Internet中正确解析模式。

或者您可以在eclipse首选项中转到XML目录并配置架构映射以正确指向架构的4.3版本。

如果它确实是运行时问题(应用程序将无法运行),则表示类路径上的spring-integration-core版本不正确 - 您应该使用maven或gradle来传递正确的版本。如果您手动构建项目类路径,则需要spring-integration-core version 4.3.2或更高版本(当前版本为4.3.4)。