MQ

MQ

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
  • 1.  Receiving Bouncycastle error issue while trying to access IBMMQ and receive the message from third party host.

    Posted Mon August 26, 2024 12:03 PM

    Hi Team,

    We have developed a camel spring boot war file to access IBMMQ (hosted by a third party). When we are trying to receive the message from the IBMMQ we are getting the below error:

    Could someone please advice and help to resolve this issue?

    2024-Aug-22 20:07:07 PM [Camel (CsdBottomLineInterfaceMain) thread #6 - JmsConsumer[GET.MIRA.GTF.TO.TEMENOS.MX]] WARN  org.apache.camel.component.jms.DefaultJmsMessageListenerContainer - Setup of JMS message listener invoker failed for destination 'GET.MIRA.GTF.TO.TEMENOS.MX' - trying to recover. Cause: 'org.bouncycastle.asn1.ASN1Primitive org.bouncycastle.asn1.ASN1TaggedObject.getObject()'
    java.lang.NoSuchMethodError: 'org.bouncycastle.asn1.ASN1Primitive org.bouncycastle.asn1.ASN1TaggedObject.getObject()'
      at org.bouncycastle.asn1.cms.ContentInfo.<init>(Unknown Source) ~[bcprov-jdk15on-1.68.jar:1.68.0]
      at org.bouncycastle.asn1.cms.ContentInfo.getInstance(Unknown Source) ~[bcprov-jdk15on-1.68.jar:1.68.0]
      at org.bouncycastle.cms.CMSUtils.readContentInfo(Unknown Source) ~[bcpkix-jdk15on-1.68.jar:1.68.00.0]
      at org.bouncycastle.cms.CMSUtils.readContentInfo(Unknown Source) ~[bcpkix-jdk15on-1.68.jar:1.68.00.0]
      at org.bouncycastle.cms.CMSEnvelopedData.<init>(Unknown Source) ~[bcpkix-jdk15on-1.68.jar:1.68.00.0]
      at com.ibm.mq.ese.prot.MessageProtectionBCImpl.unprotect(MessageProtectionBCImpl.java:742) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.prot.MessageProtectionWrapper.unprotect(MessageProtectionWrapper.java:99) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.intercept.JmqiGetInterceptorImpl.unprotect(JmqiGetInterceptorImpl.java:2264) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.intercept.JmqiGetInterceptorImpl.process(JmqiGetInterceptorImpl.java:1284) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.intercept.JmqiGetInterceptorImpl.unprotectMessage(JmqiGetInterceptorImpl.java:661) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.intercept.JmqiGetInterceptorImpl.afterGet(JmqiGetInterceptorImpl.java:512) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.intercept.JmqiGetInterceptorImpl.afterJmqiGet(JmqiGetInterceptorImpl.java:222) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.jmqi.InterceptedJmqiImpl.jmqiGet(InterceptedJmqiImpl.java:1377) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.mq.ese.jmqi.ESEJMQI.jmqiGet(ESEJMQI.java:602) ~[com.ibm.mq.allclient-9.2.2.0.jar:9.2.2.0 - p922-L210305.1]
      at com.ibm.msg.client.wmq.internal.WMQConsumerShadow.getMsg(WMQConsumerShadow.java:1795) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.msg.client.wmq.internal.WMQSyncConsumerShadow.receiveInternal(WMQSyncConsumerShadow.java:228) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.msg.client.wmq.internal.WMQConsumerShadow.receive(WMQConsumerShadow.java:1461) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.msg.client.wmq.internal.WMQMessageConsumer.receive(WMQMessageConsumer.java:674) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receiveInboundMessage(JmsMessageConsumerImpl.java:1051) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receive(JmsMessageConsumerImpl.java:667) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:209) ~[com.ibm.mqjms.jar:9.2.2.0 - p922-L210310.DE]
      at org.springframework.jms.support.destination.JmsDestinationAccessor.receiveFromConsumer(JmsDestinationAccessor.java:132) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:431) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:316) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:270) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227) ~[spring-jms-5.3.27.jar:5.3.27]
      at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120) [spring-jms-5.3.27.jar:5.3.27]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?]
      at java.lang.Thread.run(Thread.java:829) [?:?]

     



    ------------------------------
    Priyanka TV
    ------------------------------


  • 2.  RE: Receiving Bouncycastle error issue while trying to access IBMMQ and receive the message from third party host.

    Posted Tue August 27, 2024 04:03 AM

    You appear to be using AMS (Advanced Message Security) also termed ESE (Extended Security Edition) which encrypts message payloads in flight and at rest. In the Java implementation of AMS, we use Bouncy Castle to provide the PKCS#7 support for this encryption. The Bouncy Castle JARs are referenced in the classpath of the MQ client JAR.
    My suspicion is that the application also uses some Bouncy Castle elements, and we have an inconsistent mix of JAR files on the classpath. Can you show your classpath please?



    ------------------------------
    Mark Bluemel
    Software Engineer
    IBM
    mbluemel@uk.ibm.com
    ------------------------------



  • 3.  RE: Receiving Bouncycastle error issue while trying to access IBMMQ and receive the message from third party host.

    Posted Tue August 27, 2024 04:16 AM

    hi Mark,

    Thank you for your inputs.

    Please find the classpath below. Kindly advise. 

    • "WEB-INF/lib/spring-beans-5.3.27.jar"
      - "WEB-INF/lib/spring-context-5.3.27.jar"
      - "WEB-INF/lib/spring-jms-5.3.27.jar"
      - "WEB-INF/lib/spring-messaging-5.3.27.jar"
      - "WEB-INF/lib/spring-core-5.3.27.jar"
      - "WEB-INF/lib/spring-jcl-5.3.27.jar"
      - "WEB-INF/lib/spring-boot-2.7.12.jar"
      - "WEB-INF/lib/spring-boot-autoconfigure-2.7.12.jar"
      - "WEB-INF/lib/spring-web-5.3.27.jar"
      - "WEB-INF/lib/camel-spring-boot-starter-3.2.0.jar"
      - "WEB-INF/lib/camel-spring-boot-3.2.0.jar"
      - "WEB-INF/lib/camel-main-3.2.0.jar"
      - "WEB-INF/lib/camel-core-starter-3.2.0.jar"
      - "WEB-INF/lib/javax.annotation-api-1.3.2.jar"
      - "WEB-INF/lib/camel-servlet-starter-3.2.0.jar"
      - "WEB-INF/lib/camel-servlet-3.2.0.jar"
      - "WEB-INF/lib/camel-http-common-3.2.0.jar"
      - "WEB-INF/lib/camel-http-base-3.2.0.jar"
      - "WEB-INF/lib/camel-cloud-3.2.0.jar"
      - "WEB-INF/lib/camel-attachments-3.2.0.jar"
      - "WEB-INF/lib/javax.activation-1.2.0.jar"
      - "WEB-INF/lib/camel-stream-3.2.0.jar"
      - "WEB-INF/lib/camel-support-3.2.0.jar"
      - "WEB-INF/lib/camel-api-3.2.0.jar"
      - "WEB-INF/lib/camel-management-api-3.2.0.jar"
      - "WEB-INF/lib/camel-util-3.2.0.jar"
      - "WEB-INF/lib/camel-jms-3.2.0.jar"
      - "WEB-INF/lib/camel-spring-3.2.0.jar"
      - "WEB-INF/lib/camel-xml-jaxp-3.2.0.jar"
      - "WEB-INF/lib/camel-core-xml-3.2.0.jar"
      - "WEB-INF/lib/spring-aop-5.3.27.jar"
      - "WEB-INF/lib/spring-expression-5.3.27.jar"
      - "WEB-INF/lib/spring-tx-5.3.27.jar"
      - "WEB-INF/lib/camel-core-3.2.0.jar"
      - "WEB-INF/lib/camel-core-engine-3.2.0.jar"
      - "WEB-INF/lib/camel-base-3.2.0.jar"
      - "WEB-INF/lib/camel-core-languages-3.2.0.jar"
      - "WEB-INF/lib/camel-bean-3.2.0.jar"
      - "WEB-INF/lib/camel-browse-3.2.0.jar"
      - "WEB-INF/lib/camel-caffeine-lrucache-3.2.0.jar"
      - "WEB-INF/lib/caffeine-2.9.3.jar"
      - "WEB-INF/lib/camel-cluster-3.2.0.jar"
      - "WEB-INF/lib/camel-controlbus-3.2.0.jar"
      - "WEB-INF/lib/camel-dataformat-3.2.0.jar"
      - "WEB-INF/lib/camel-dataset-3.2.0.jar"
      - "WEB-INF/lib/camel-direct-3.2.0.jar"
      - "WEB-INF/lib/camel-directvm-3.2.0.jar"
      - "WEB-INF/lib/camel-file-3.2.0.jar"
      - "WEB-INF/lib/camel-core-catalog-3.2.0.jar"
      - "WEB-INF/lib/camel-language-3.2.0.jar"
      - "WEB-INF/lib/camel-log-3.2.0.jar"
      - "WEB-INF/lib/camel-mock-3.2.0.jar"
      - "WEB-INF/lib/camel-ref-3.2.0.jar"
      - "WEB-INF/lib/camel-rest-3.2.0.jar"
      - "WEB-INF/lib/camel-tooling-model-3.2.0.jar"
      - "WEB-INF/lib/camel-util-json-3.2.0.jar"
      - "WEB-INF/lib/camel-saga-3.2.0.jar"
      - "WEB-INF/lib/camel-scheduler-3.2.0.jar"
      - "WEB-INF/lib/camel-seda-3.2.0.jar"
      - "WEB-INF/lib/camel-stub-3.2.0.jar"
      - "WEB-INF/lib/camel-timer-3.2.0.jar"
      - "WEB-INF/lib/camel-validator-3.2.0.jar"
      - "WEB-INF/lib/camel-xslt-3.2.0.jar"
      - "WEB-INF/lib/camel-xml-jaxb-3.2.0.jar"
      - "WEB-INF/lib/camel-activemq-3.2.0.jar"
      - "WEB-INF/lib/activemq-spring-5.16.6.jar"
      - "WEB-INF/lib/xbean-spring-4.14.jar"
      - "WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar"
      - "WEB-INF/lib/commons-pool2-2.11.1.jar"
      - "WEB-INF/lib/activemq-pool-5.16.6.jar"
      - "WEB-INF/lib/activemq-jms-pool-5.16.6.jar"
      - "WEB-INF/lib/activemq-client-5.16.6.jar"
      - "WEB-INF/lib/hawtbuf-1.11.jar"
      - "WEB-INF/lib/geronimo-j2ee-management_1.1_spec-1.0.1.jar"
      - "WEB-INF/lib/javax.servlet-api-3.0.1.jar"
      - "WEB-INF/lib/log4j-api-2.17.2.jar"
      - "WEB-INF/lib/log4j-core-2.17.2.jar"
      - "WEB-INF/lib/log4j-web-2.17.2.jar"
      - "WEB-INF/lib/log4j-jul-2.11.2.jar"
      - "WEB-INF/lib/log4j-slf4j-impl-2.11.2.jar"
      - "WEB-INF/lib/jul-to-slf4j-1.7.26.jar"
      - "WEB-INF/lib/slf4j-api-1.7.26.jar"
      - "WEB-INF/lib/rps-engine-api-client-3.10.0.jar"
      - "WEB-INF/lib/jackson-annotations-2.13.5.jar"
      - "WEB-INF/lib/jackson-databind-2.13.5.jar"
      - "WEB-INF/lib/jackson-core-2.13.5.jar"
      - "WEB-INF/lib/httpcore-4.4.16.jar"
      - "WEB-INF/lib/httpclient-4.5.14.jar"
      - "WEB-INF/lib/commons-codec-1.15.jar"
      - "WEB-INF/lib/jaxb-api-2.3.0.jar"
      - "WEB-INF/lib/jaxb-core-2.3.0.jar"
      - "WEB-INF/lib/jaxb-impl-2.3.0.jar"
      - "WEB-INF/lib/gson-2.8.1.jar"
      - "WEB-INF/lib/swagger-annotations-2.0.0.jar"
      - "WEB-INF/lib/json-20240303.jar"
      - "WEB-INF/lib/spring-boot-jarmode-layertools-2.7.12.jar"



    ------------------------------
    Priyanka TV
    ------------------------------



  • 4.  RE: Receiving Bouncycastle error issue while trying to access IBMMQ and receive the message from third party host.

    Posted Tue August 27, 2024 07:31 AM

    Thank you for that information.
    I can't immediately currently see the source of the mismatch, but I'm concerned that there may still be one.

    Can you add "-Xverbose:class" to the startup options for your testcase, and provide the verbose classloading logging that it will produce? We can then be sure where the failing class was loaded from.



    ------------------------------
    Mark Bluemel
    Software Engineer
    IBM
    mbluemel@uk.ibm.com
    ------------------------------