Spring Integration Jms Outbound Channel Adapter not sending messages to Queue -
hi using spring integration project connect ibm mq.below code connectionfactory , queue
<bean id="mqconnectionfactory" class="com.ibm.mq.jms.mqqueueconnectionfactory"> <property name="hostname" value="${ibm.mq.connection.url}" /> <property name="port" value="${ibm.mq.connection.port}" /> <property name="transporttype" value="1" /> <property name="queuemanager" value="${ibm.mq.conection.queuemanager}" /> <property name="channel" value="${ibm.mq.conection.channel}" /> </bean> <bean id="asnshipconfirmqueue" class="com.ibm.mq.jms.mqqueue"> <constructor-arg value="${ibm.mq.parcelmovement.asnshipconfirm.queue}" /> </bean> i using above queue destination queue
<int-jms:outbound-channel-adapter id="jmsoutasnshipconfirm" channel="asnshipconfirmupdatechannel" connection-factory="mqconnectionfactory" destination="asnshipconfirmqueue"/> the broker , channel also.i have used channelinterceptor input channel of jms adapter , logged jms message sent on presend method , coming message not getting transmitted queue itself.also have checked same connection factory , same queue details in other flow , there message getting transmitted. current flow in message transmission not working given below
<int:channel id="parcelmovementcreatelabelerrorchannel"></int:channel> <int:service-activator id="parcelmovementcreatelabelexceptionhandler" input-channel="parcelmovementcreatelabelerrorchannel" ref="connecterrorhandler" method="handleexceptionexposedservices"> </int:service-activator> <int:channel id="httpcreatelabelrequestchannel" /> <int:channel id="httpcreatelabelresponsechannel" /> <int:channel id="validatecreatelabelrequestoutputchannel" /> <int:channel id="printreturnlabelrequestchannel" /> <int:channel id="printreturnlabeldbchannel" /> <int:channel id="printreturnlabelreplychannel" /> <int:channel id="outjsoncreatelabelreplychannel" /> <int:channel id="invokeshippinglabelserviceinputchannel" /> <int:channel id="invokeshippinglabeldbchannel" /> <int:channel id="shippinglabeldbchannel" /> <int:publish-subscribe-channel id="invokeshipconfirmxmlinputchannel" /> <int:channel id="invokeshippinglabelresponsechannel"/> <int:channel id="asnshipconfirmupdatechannel"/> <int:publish-subscribe-channel id="asnshipconfirmtransformerchannel"/> <int-http:inbound-gateway id="createlabel" request-channel="httpcreatelabeltrequestchannel" error-channel="parcelmovementcreatelabelerrorchannel" reply-channel="httpcreatelabelresponsechannel" supported-methods="post" path="${parcelmovement.createlabel.url}"> <int-http:header name="source" expression="#requestheaders.source" /> <int-http:header name="storeid" expression="#requestheaders.storeid" /> <int-http:header name="userid" expression="#requestheaders.userid" /> <int-http:header name="transactionid" expression="#requestheaders.transactionid" /> <int-http:header name="clientid" expression="#requestheaders.clientid" /> <int-http:header name="label" expression="#pathvariables.label" /> <!-- <int-http:header name="id" expression="#requestparams.get('id')?:''" /> --> <int-http:header name="oldparcelnumber" expression="#pathvariables.id" /> </int-http:inbound-gateway> <int:service-activator id="validatecreatelabelrequest" input-channel="httpcreatelabeltrequestchannel" output-channel="validatecreatelabelrequestoutputchannel" ref="parcelmovementrequestvalidatorservice" method="validatecreatelabelrequest" /> <int:header-value-router input-channel="validatecreatelabelrequestoutputchannel" header-name="labeltype" default-output-channel="parcelmovementcreatelabelerrorchannel"> <int:mapping value="return_label" channel="invokereturnlabelserviceinputchannel" /> <int:mapping value="shipping_label" channel="invokeshippinglabelserviceinputchannel" /> </int:header-value-router> <int:service-activator id="printreturnlabel" input-channel="printreturnlabelrequestchannel" output-channel="printreturnlabeldbchannel" ref="parcelmovementrequestvalidatorservice" method="invokeprintreturnlabel" /> <!--- call store procedure check pre-advice generated or not --> <int-jdbc:stored-proc-outbound-gateway id="printreturnlabelstoreproc" request-channel="printreturnlabeldbchannel" reply-channel="printreturnlabelreplychannel" data-source="datasource" is-function="false" ignore-column-meta-data="true" stored-procedure-name="${sp.parcelmovement.printreturnlabel}" expect-single-result="false"> <int-jdbc:sql-parameter-definition name="v_old_parcel_number" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_return_label_number" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_user_id" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_store_id" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="response_code" direction="out" type="varchar" /> <int-jdbc:sql-parameter-definition name="response_msg" direction="out" type="varchar" /> <int-jdbc:parameter name="v_old_parcel_number" expression="payload.oldparcelnumber" /> <int-jdbc:parameter name="v_return_label_number" expression="payload.returnlabelnumber" /> <int-jdbc:parameter name="v_user_id" expression="payload.userid" /> <int-jdbc:parameter name="v_store_id" expression="payload.originid" /> </int-jdbc:stored-proc-outbound-gateway> <int:service-activator id="printreturnlabelreply" input-channel="printreturnlabelreplychannel" ref="parcelmovementresponseservice" method="createlabelresponse" output-channel="outjsoncreatelabelreplychannel"> </int:service-activator> <int:object-to-json-transformer input-channel="outjsoncreatelabelreplychannel" output-channel="httpcreatelabelresponsechannel"></int:object-to-json-transformer> <!-- print shipping label start --> <int:service-activator id="invokeshippinglabelservice" input-channel="invokeshippinglabelserviceinputchannel" ref="parcelmovementrequestvalidatorservice" method="generateshippinglabelrequest" output-channel="createreturnlabeljsonrequest"> </int:service-activator> <int:service-activator id="invokeshippinglabeldb" input-channel="invokeshippinglabeldbchannel" ref="parcelmovementrequestvalidatorservice" method="invokeshippinglabeldb" output-channel="shippinglabeldbchannel"> </int:service-activator> <int-jdbc:stored-proc-outbound-gateway id="shippinglabelstoreproc" request-channel="shippinglabeldbchannel" reply-channel="invokeshipconfirmxmlinputchannel" data-source="datasource" is-function="false" ignore-column-meta-data="true" stored-procedure-name="${sp.parcelmovement.createshippinglabelproc}" expect-single-result="false"> <int-jdbc:sql-parameter-definition name="v_slot_label" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_store_id" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_shipping_label_number" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="v_user_id" direction="in" type="varchar" /> <int-jdbc:sql-parameter-definition name="temp_out" direction="out" type="#{t(oracle.jdbc.oracletypes).array}" type-name="shipping_label_tbl" return-type="sqlreturnstructarrayshippinglabel" /> <int-jdbc:sql-parameter-definition name="response_code" direction="out" type="varchar" /> <int-jdbc:sql-parameter-definition name="response_msg" direction="out" type="varchar" /> <int-jdbc:parameter name="v_slot_label" expression="payload.oldparcelnumber" /> <int-jdbc:parameter name="v_store_id" expression="payload.originid" /> <int-jdbc:parameter name="v_shipping_label_number" expression="payload.returnlabelnumber" /> <int-jdbc:parameter name="v_user_id" expression="payload.userid" /> </int-jdbc:stored-proc-outbound-gateway> <bean id="sqlreturnstructarrayshippinglabel" class="org.springframework.data.jdbc.support.oracle.sqlreturnstructarray"> <constructor-arg name="mapper" ref="shippinglabelmapper" /> </bean> <bean id="shippinglabelmapper" class="com.asda.connect.parcelmovement.mapper.shippinglabelmapper" /> <int:service-activator id="invokeshipconfirmxml" input-channel="invokeshipconfirmxmlinputchannel" ref="parcelmovementrequestvalidatorservice" method="generateshipconfirmationxml" output-channel="invokeshippinglabelresponsechannel"> </int:service-activator> <int:header-value-router input-channel="invokeshippinglabelresponsechannel" header-name="isasnshipconfirmrequired" default-output-channel="parcelmovementcreatelabelerrorchannel"> <int:mapping value="no" channel="invokeshippinglabelresponsechannel" /> <!-- should point mq --> <int:mapping value="yes" channel="asnshipconfirmtransformerchannel" /> </int:header-value-router> <int-xml:marshalling-transformer id="parcelmovementasnshippingeventmarshaller" input-channel="asnshipconfirmtransformerchannel" output-channel="asnshipconfirmupdatechannel" marshaller="jaxbunmarshaller" result-transformer="resulttransformer" /> <!-- push xml mq --> <int-jms:outbound-channel-adapter id="jmsoutasnshipconfirm" channel="asnshipconfirmupdatechannel" connection-factory="mqconnectionfactory" destination="asnshipconfirmqueue"/> <int:bridge input-channel="asnshipconfirmtransformerchannel" output-channel="invokeshippinglabelresponsechannel"/> <int:service-activator id="invokeshippinglabelresponse" input-channel="invokeshippinglabelresponsechannel" ref="parcelmovementresponseservice" method="createshippinglabelresponse" output-channel="outjsoncreatelabelreplychannel"> </int:service-activator> <!-- create label end -->
i suggest turn on debug logging org.springframework follow message through flow, logs jmstemplate used within adapter.
Comments
Post a Comment