Hi, The most flexible option is implementing own CXF transport for IBM MQ. In this case you have all options, sender and listener full under control. Drawback - option requires some efforts.
You can have a look how to add your own transport in CXF here: http://cxf.apache.org/docs/custom-transport.html and in my blog http://ashakirin.blogspot.com/2012/02/custom-cxf-transport.html Regards, Andrei. > -----Original Message----- > From: Jens [mailto:[email protected]] > Sent: Freitag, 12. Oktober 2018 10:11 > To: [email protected] > Subject: Re: SOAP over IBM MQ - MQHRF2 Format > > Hi David, > > I've never used CXF3-style JMS configuration, but only the JMSConfiguration > feature where the address set on the endpoint is just "jms://" and the target > queue is defined in the feature. > > The problem here (with the CXF3 style) is that the properties given in the URL > are CXF properties, not MQ properties, and CXF doesn't know about > targetClient. > I'm > not sure how you would pass properties to the JMS impl with this scheme. I > don't see a way to set a DestinationResolver, either. > > Maybe someone else knows about that, but I can only suggest using the > JMSConfiguration style instead: > https://urldefense.proofpoint.com/v2/url?u=http- > 3A__cxf.apache.org_docs_using-2Dthe- > 2Djmsconfigfeature.html&d=DwICAg&c=2w5q_42kFG40MI2alLPgJw&r=bWOqk > HjIZE0sZtdpFMIhm-lcbhtB3cv08OlIr0lkKR4&m=zQkdcRErC6MdX- > 5MalMM9zNj__roxHQSj0zPSS1eONo&s=GFpMNoRCbLcw5DbugKSQ9SmN6Tc7B > xZgBZl5aUqss4I&e= > > > David Payne-2 wrote > > Hi Jens, > > > > Thanks very much for this, I've tried it, and my MQ admin is telling > > me that the message still has the MQMD format of MQHRF2, and includes > > an > > MQRFH2 header. > > > > I only have the vaguest understanding of what that means, but it > > sounds to me like that's what the targetClient=1 parameter should prevent. > > > > In the CXF logs I can see that the targetClient setting is being > > included, but noticed that the queue name I'm setting is > > "jms:queue:...?targetClient=1". > > > > I notice that your suggestion doesn't include the "jms:", so tried > > removing it and now CXF throws an exception saying: > > > > Could not find conduit initiator for address: queue:///...? > > targetClient=1 and transport: > > https://urldefense.proofpoint.com/v2/url?u=http-3A__www.w3.org_soapjms > > _&d=DwICAg&c=2w5q_42kFG40MI2alLPgJw&r=bWOqkHjIZE0sZtdpFMIhm- > lcbhtB3cv0 > > 8OlIr0lkKR4&m=zQkdcRErC6MdX- > 5MalMM9zNj__roxHQSj0zPSS1eONo&s=a65MfwkHaO > > MGWgZla2AgFNEo9gBuvScQhDnmAFHVMr0&e= > > > > I assume this is because I'm setting this on my JaxWsProxyFactoryBean: > > > > JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); > > > > > factory.setTransportId(JMSSpecConstants.SOAP_JMS_SPECIFICATION_TRANSPO > > RTID); > > > > Is there some other transportId value I should be using? > > > > Any other thoughts welcome, of course. > > Dave. > > > > > > On Fri, 12 Oct 2018, 07:24 Jens, < > > > smixdev@ > > > > wrote: > > > >> Hi, > >> > >> I suspect you want to tell MQ that the receiver is not a JMS client > >> but a "regular" consumer. > >> > >> Try specifying the target queue name like this: > >> > >> "queue:///" + queueConfig.getQueue() + "?targetClient=1" > >> > >> Cheers, > >> Jens > >> > >> > >> David Payne-2 wrote > >> > I'm trying to send a one-way SOAP request over IBM MQ. > >> > Unfortunately I know nothing about MQ and have no access to the > >> > broker or its tools. My contact who manages the MQ instance knows > >> > lots about MQ but nothing about JMS or CXF. > >> > > >> > He's complaining that the messages I'm sending have a format of > MQHRF2. > >> > I _think_ he wants them to have a format of MQSTR. > >> > >> > >> > >> > >> > >> -- > >> Sent from: > >> https://urldefense.proofpoint.com/v2/url?u=http-3A__cxf.547215.n5.nab > >> ble.com_cxf-2Duser- > 2Df547216.html&d=DwICAg&c=2w5q_42kFG40MI2alLPgJw&r > >> =bWOqkHjIZE0sZtdpFMIhm-lcbhtB3cv08OlIr0lkKR4&m=zQkdcRErC6MdX- > 5MalMM9z > >> > Nj__roxHQSj0zPSS1eONo&s=4D_IhfenezgFJkvr5xBnsJn3DQTSWurhjFHTKzmXJyA > &e > >> = > >> > > > > > > -- > Sent from: https://urldefense.proofpoint.com/v2/url?u=http- > 3A__cxf.547215.n5.nabble.com_cxf-2Duser- > 2Df547216.html&d=DwICAg&c=2w5q_42kFG40MI2alLPgJw&r=bWOqkHjIZE0sZt > dpFMIhm-lcbhtB3cv08OlIr0lkKR4&m=zQkdcRErC6MdX- > 5MalMM9zNj__roxHQSj0zPSS1eONo&s=4D_IhfenezgFJkvr5xBnsJn3DQTSWurhj > FHTKzmXJyA&e= As a recipient of an email from Talend, your contact personal data will be on our systems. Please see our contacts privacy notice at Talend, Inc. <https://www.talend.com/contacts-privacy-policy/>
