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

Camel — с использованием пользовательских операций jmsOperations: нельзя привести к org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate

Я хочу использовать пользовательский jmsOperations, когда я пытаюсь получить исключение приведения класса: невозможно привести к org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate

Конфигурация:

<bean id="jmsErf" class="org.apache.camel.component.jms.JmsComponent">
    <property name="jmsOperations" ref="myJmsTemplate" />   
    <property name="preserveMessageQos" value="true"/>
    <property name="explicitQosEnabled" value="false"/>
    <property name="testConnectionOnStartup" value="true"/>
    <!--property name="useMessageIDAsCorrelationID" value="true" / WARNING! Do not use this as we need to copy only in the beginning not everywhere -->
    <property name="transactionManager" ref="jpaTransactionManager" />
    <property name="transacted" value="true" />
</bean>

<bean name="myJmsTemplate" class="blabla.MyJmsTemplate">
<property name="connectionFactory">
    <bean class="jms.MQConnectionFactory">
        <property name="queueManagerName" value="${Queue.My.manager}" />
        <property name="throwOnInvalidMessageProperty" value="false" />
    </bean>
</property>
</bean>

Образец класса, который я создал

MyJmsTemplate extends org.springframework.jms.core.JmsTemplate implements
        org.springframework.jms.core.JmsOperations { .. no code :)

Почему я пробую jmsOperations: мне просто нужно поддерживать оригинальный JMSPriority. Да, я пытался сохранить QoS, явный QoS [различные комбинации включения и т. д., он либо устанавливает для всех приоритетов значение 4; или приоритет остается нулевым, несмотря на установку приоритета, например, = 6]. создав свои собственные jmsOperations и явно передав значение JMSPriority.

Трассировка исключения:

Причина: org.apache.camel.FailedToCreateProducerException: не удалось создать производителя для конечной точки: Endpoint[jmsErf://queue:MQDEV.MYQ.ERROR]. Причина: java.lang.ClassCastException: blabla.MyJmsTemplate не может быть приведен к org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate в org.apache.camel.component.jms.JmsProducer.testConnectionOnStartup(JmsProducer.java:458) в org.apache.camel.component.jms.JmsProducer.doStart(JmsProducer.java:469) в org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) в org.apache.camel.util.ServiceHelper. startService(ServiceHelper.java:62) at org.apache.camel.impl.ProducerCache.doGetProducer(ProducerCache.java:387) ... еще 115 Причина: java.lang.ClassCastException: bla.MyJmsTemplate не может быть приведен к org. apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate в org.apache.camel.component.jms.JmsProducer.testConnectionOnStartup(JmsProducer.java:447) ... еще 119

Может ли кто-нибудь указать мне на использование jmsOptions в верблюде?


Ответы:


1

Какую версию Camel вы используете?

Вам следует использовать пользовательский messageConverter, если вы хотите самостоятельно сопоставлять сообщения JMS/из них.

И JMSPriority должен быть сохранен, если вы установили saveMessageQos=true.

28.11.2012
  • Верблюжья версия 2.10.0. Когда я тестировал тот же поток с реализацией интеграции Spring, я мог видеть JMSPriority в MQ (который исключает MQ или любой базовый API, удаляющий JMSPriority) 30.11.2012
  • Вы используете IBM WebSphere MQ? Поэтому обязательно установите его в режиме Java. Существует некоторая специальная опция, которую необходимо установить для AFAIR. 01.12.2012
  • Да, IBM MQ. Я думаю, что мы можем исключить специальные параметры, поскольку пример Spring Integration содержит значение JMSPriority, установленное для того же набора очередей IBM MQ. 04.12.2012
  • Новые материалы

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

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

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

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

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

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

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