2016-10-24 3 views
0

Ich verwende Eclipse als IDE. Ich habe eine sehr einfache Konfigurations-XML-Datei, die nicht validiert und daher verhindert, dass Eclipse etwas ausführt. Was vermisse ich?Spring Integration Kafka Konfiguration - Fehler in Eclipse

Hier ist der Validierungsfehler (ich sehe das in Problemen sehen kann): enter image description here

Hier ist meine Config 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> 

Antwort

1

Wenn dies sind nur gefälschte Fehler und die App läuft ok, es ist einfach Mittel Sie lösen die Online-Version des Spring-Integration-Core-Schemas here. Beachten Sie den WICHTIGEN Hinweis oben im Schema, warum dies nicht die aktuelle Version ist.

Sie können dies beheben, indem Sie eine federbewusste Eclipse (z. B. STS oder das Spring-IDE-Plug-in) verwenden und Spring-Natur für das Projekt festlegen, sodass das Schema ordnungsgemäß aus dem Klassenpfad anstelle des Internets aufgelöst wird.

Oder Sie können in den Eclipse-Einstellungen zum XML-Katalog wechseln und das Schema-Mapping so konfigurieren, dass es auf die 4.3-Version des Schemas verweist.

Wenn es wirklich ein Laufzeitproblem ist (App wird nicht ausgeführt), bedeutet das, dass Sie eine falsche Version von spring-integration-core im Klassenpfad haben - Sie sollten maven oder gradle verwenden, um die richtige Version transitiv zu ziehen. Wenn Sie den Projektklassenpfad manuell erstellen, benötigen Sie die Spring-Integration-Core-Version 4.3.2 oder höher (aktuelle Version ist 4.3.4).

+0

Vielen Dank für Ihre Antwort Gary. Es scheint kein Laufzeitproblem zu sein. Ich werde testen, ob es mit der richtigen Version behebt und was ich finde. – code4kix

+0

Ok, also habe ich versucht, STS, und alle Fehler gingen weg. Keine Laufzeitfehler auch nicht. Egal, was ich versuche, nur Eclipse zu planen, ich kann die Fehler einfach nicht loswerden. Eins führt zum anderen und es gibt einfach zu viele Konflikte. Ein weiterer Grund, warum ich Java DSL für Spring Integration in Betracht ziehen sollte – code4kix

+1

Sie sollten in der Lage sein, es über den XML-Katalog in den Einstellungen wieder zu erleben. Aber warum kämpfen, wenn es Spring-Plugins gibt, die dir helfen? Offensichtlich ist die DSL eine modernere Art, Flüsse zu konfigurieren, aber einige Leute wie XML und dieses Schema-Zeug sind nicht so schwer, sobald Sie alles ausgerichtet haben. –

Verwandte Themen