【问题标题】:Spring Integration: Error Channel not available in XMLSpring Integration:错误通道在 XML 中不可用
【发布时间】:2017-12-13 07:03:08
【问题描述】:

您好,我正在将 Spring 集成与 JMS 集成一起使用,我注意到当我尝试在我的 jms-message-drive-outbound-adapter 中使用错误通道时,它会出现以下错误;

根据我之前的问题的建议,我想检索异常并回滚事务,这样我就不会丢失消息。如果错误通道是不可能的,我该如何实现。

cvc-complex-type.3.2.2: Attribute 'error-channel' is not allowed to appear in element 'jms:message-driven-channel-adapter'.

我的 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:jms="http://www.springframework.org/schema/integration/jms"
    xmlns:integration="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/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/integration/jms 
    http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
    http://www.springframework.org/schema/integration/kafka 
    http://www.springframework.org/schema/integration/kafka/spring-integration-kafka.xsd">

    <jms:message-driven-channel-adapter id="requestChannelAdapter" channel="requestChannel" 
    container="requestListenerContainer" error-channel=""/>


    <int-kafka:outbound-channel-adapter
        id="kafkaOutboundChannelAdapter" kafka-template="kafkaTemplate"
        auto-startup="true" sync="true" channel="inputToKafka" topic="test">
    </int-kafka:outbound-channel-adapter>
</beans>

在最近的版本中是否被其他东西取代。

下面列出了我的 POM 文件以供参考,以防版本不匹配:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test.dzone.activemq</groupId>
    <artifactId>jpmc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>jpmc</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.5.RELEASE</version>
        <relativePath /> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-integration</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-jms</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-kafka</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-java-dsl</artifactId>
            <version>1.1.2.RELEASE</version>
        </dependency>
        <!-- dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-zookeeper</artifactId>
            <version>4.3.9.RELEASE</version>
        </dependency-->

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-broker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.8.1.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

【问题讨论】:

    标签: jms spring-integration spring-jms


    【解决方案1】:

    你可以忽略它;看来您的 IDE 正在使用来自 Internet 的架构 - 请参阅顶部的注释...

    http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd

    <!--
           +++++ IMPORTANT +++++
    
         This schema is for the 1.0 version of Spring Integration JMS. We cannot update it to the current schema
         because that will break any applications using 1.0.3 or lower. For subsequent versions, the unversioned
         schema is resolved from the classpath and obtained from the jar.
         Please refer to github:
    
    https://github.com/spring-projects/spring-integration/tree/master/spring-integration-jms/src/main/resources/org/springframework/integration/jms/config
    
         for the latest schema. 
    -->
    

    您可以忽略它,也可以使用 Spring-Aware IDE(Spring Tool Suite - STS、IntelliJ IDEA 等),它知道如何通过 /META-INF/spring.schemas 在类路径上查找当前架构。

    如果您已经在使用 STS(或带有 Spring IDE 插件的 eclipse),请确保在项目中启用“Spring Nature”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-14
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多