Nano Hash - криптовалюты, майнинг, программирование

spring-integration-dsl-groovy-http возвращает значение null, когда я использую метод httpGet

Я использую интеграцию spring 4.1.4 и интеграцию spring dsl groovy 1.1.0.

Я включил ядро ​​​​интеграции spring, http в зависимости.

Когда я выполняю пример весенней интеграции dsl groovy http, он выдает нулевое значение в консоли. Я не уверен, что я пропустил.

Вот мой код выглядит

IntegrationBuilder builder = new IntegrationBuilder("http");

def flow = builder.messageFlow {
        transform {"http://www.google.com/finance/info?q=$it"}          
        httpGet(url:{"${it}"},responseType:String)
    }

Object result = flow.sendAndReceive("vmw");

Кто-нибудь может мне помочь?


Ответы:


1

Это было исправлено в основной ветке. Между тем простой обходной путь

url:{"http://www.google.com/finance/info?q=$it".toString()}

or

url:{"http://www.google.com/finance/info?q=$it" as String}
09.06.2015

2

Какая версия ДСЛ? Вам необходимо выполнить сборку из master для использования с Spring Integration 4.1.x.

Я предупрежу вас, что заводному DSL в течение нескольких лет уделялось мало внимания; он так и не получил никакого признания в обществе.

Java DSL предпочтительнее; он активно поддерживается и расширяется.

08.06.2015
  • Спасибо Гэри Расселу за ваш вклад. 09.06.2015

  • 3

    Я только что проверил ваш случай и не видел никаких null value, но была еще одна ошибка, подобная этой:

    Caused by: java.lang.IllegalStateException: 'uriExpression' evaluation must result in a 'String' or 'URI' instance, not: class org.codehaus.groovy.runtime.GStringImpl
    

    Итак, это действительно ошибка, и не стесняйтесь поднимать тикет JIRA, и мы скоро позаботимся об этом.

    С другой стороны, позвольте задать вам вопрос: в чем причина быть на этом нестабильном, неподдерживаемом материале, когда у нас уже есть Java DSL. С другой стороны, мы можем использовать любое пространство имен Spring Integration из обычной поддержки конфигурации Spring Groovy, например:

    beans {
        xmlns([si: 'http://www.springframework.org/schema/integration'])
    
        def headers = environment.getProperty('headers')
        def parser = new JsonSlurper()
        def result = parser.parseText(headers)
    
        si.channel(id:'input')
        si.channel(id:'output')
    
        si.'header-enricher'('input-channel':'input','output-channel':'output') {
            result.each {k,v->
                si.'header'(name:k,expression:v)
            }
        }
    }
    
    08.06.2015
  • Биллан: Да, ты прав! когда я сначала запустил пример, он выдал ошибку, вызванную: java.lang.IllegalStateException: 'uriExpression' ... 'Чтобы решить эту проблему, я добавил преобразование перед httpGet, где я получил null в консоли 09.06.2015
  • Это не поможет. Потому что корень проблемы - ClosureInvokingMessageProcessor, который все равно возвращает GString после оценки, но мы не можем построить URL на этом из последних версий SI. Итак, исправление должно быть представлено в проекте Groovy-DSL. Вот почему я попросил вас использовать JIRA. 09.06.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..