2017-02-13 7 views
0

Я хочу создать 'jdbc: исходящий канал-адаптер'. это мой XML-файл:Как создать объявление для 'jdbc: outbound-channel-adapter'?

<?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:integration="http://www.springframework.org/schema/integration" 
     xmlns:jdbc="http://www.springframework.org/schema/integration/jdbc" 
     xsi:schemaLocation="http://www.springframework.org/schema/integration 
         http://www.springframework.org/schema/integration/spring-integration.xsd 
         http://www.springframework.org/schema/integration/jdbc 
         http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd 
         http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd"> 

    <!-- store delayed notifications --> 
    <integration:channel id="delayedNotificationChannel"> 
     <integration:interceptors> 
      <integration:wire-tap channel="logDelayedNotificationChannel"/> 
     </integration:interceptors> 
    </integration:channel> 

    <integration:transformer input-channel="delayedNotificationChannel" 
          ref="unicodeEncoderServiceImpl" 
          method="encode" 
          output-channel="delayedNotificationOutChannel"/> 

    <integration:channel id="delayedNotificationOutChannel"/> 
    <jdbc:outbound-channel-adapter channel="delayedNotificationOutChannel" data-source="dataSource"> 
     <jdbc:query> 
      insert into Notification....................... 
     </jdbc:query> 
    </jdbc:outbound-channel-adapter> 

    <!-- log --> 
    <integration:channel id="logDelayedNotificationChannel"/> 
    <integration:logging-channel-adapter channel="logDelayedNotificationChannel" 
             level="INFO" 
             expression="'Delaying IVR, EventTypeName:' + headers['eventTypeName'] + ', Recipient:' + headers['recipient'] + ', ContactType:' + headers['contactType'] + ', ContactCode:' + headers['contactCode']+ ', Until: ' + new java.util.Date(headers['delayUntil'])"/> 
</beans> 

, но он не работает, выход:

Исключение в потоке "основной" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Строка 26 в XML документ из ресурса пути класса [META-INF/spring/integration/ivr-send-delay-context.xml] недействителен; Вложенное исключение - org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 101; cvc-complex-type.2.4.c: Соответствующий шаблон является строгим, но для элемента 'jdbc: outbound-channel-adapter' не найдено объявления. в org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions (XmlBeanDefinitionReader.java:399) на org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:336) в org.springframework. beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions (XmlBeanDefinitionReader.java:304) на org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:181) на org.springframework.beans.factory.support. AbstractBeanDefinitionReader.loadBeanDefinitions (AbstractBeanDefinitionReader.java:217) ...................

+0

Можете ли вы попробовать перейти на «int-jdbc: исходящий канал-адаптер» вместо «jdbc: исходящий канал-адаптер»? То же самое применимо и для 'jdbc: query'. Просто измените его на 'int-jdbc: query' и попробуйте один раз. –

+1

Нет; его пространство имен настроено как 'jdbc' -' xmlns: jdbc = "...' not 'int-jdbc'. –

+0

@GaryRussell, Yep .. Вы правы. –

ответ

0

Вы должны быть уверены, что spring-integration-jdbc jar находится в classpath.

Измените конфигурацию управления зависимостями и добавьте ее там.

Ваша IDE может правильно разрешить теги через свои внутренние параметры, но это не значит, что она будет работать во время выполнения.