Hi,

I am trying to send a message to Websphere 5.3 from a servicemix-bean
component. We are using ServiceMix 3.3 and 2008.01 servicemix-jms
components.  I am trying to do the InOnly request so I can avoid setting
replyDestinationName, but always getting "Provider exchange is ACTIVE, but
no in or fault is provided" even though I have clearly set content in the
"in" message.  Can anyone help me to see if I am doing something wrong?

Note that if I try to set replyDestinationName, I get the
javax.jms.JMSException: MQJMS1044: String is not a valid hexadecimal number. 
I have searched the forum and see some reference in
http://cwiki.apache.org/SM/discussion-forums.html#nabble-td18345685.  The
page said that newer jms:provider endpoint should not have this problem, but
I am already using new endpointand still get this exception.

Thanks very much for your help.

Bean code:
    @Resource
    private DeliveryChannel channel;

    //target is configured to "eddd:jmsDDDRequest" via xbean.xml
    private QName target;

...some code to generate myoutput string...
MessageExchange outexchange =
channel.createExchangeFactoryForService(target).createInOnlyExchange();
NormalizedMessage outMessage = exchange.getMessage("in");
outMessage.setContent(new StringSource(myoutput));
channel.send(outexchange);

my xbean for jms is configured as follows:

  <jms:provider service="eddd:jmsDDDRequest" 
              endpoint="dddrequest"
              destinationName="DDD.REQ.Q"
              connectionFactory="#connectionFactory"/>

        <bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
                <property name="environment">
                        <props>
                                <prop
key="java.naming.factory.initial">com.ibm.mq.jms.context.WMQInitialContextFactory</prop>
                                <prop
key="java.naming.provider.url">${edddservice.jms.hostname}:${edddservice.jms.port}/${edddservice.jms.channel}</prop>
                                <prop 
key="java.naming.security.authentication">simple</prop>
                                <prop
key="java.naming.security.principal">${edddservice.jms.user}</prop>
                                <prop
key="java.naming.security.credentials">${edddservice.jms.password}</prop>
                                <prop key="java.naming.referral">throw</prop>
                        </props>
                </property>
        </bean>

        <bean id="internalJMSQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
            <property name="jndiTemplate">
                <ref bean="jndiTemplate"/>
            </property>
            <property name="jndiName">
                  <value>${edddservice.jms.qmanager}</value>
            </property>
        </bean>
        
        <bean id="connectionFactory"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
                <property name="targetConnectionFactory">
                        <ref bean="internalJMSQueueConnectionFactory" /> 
                </property>
                <property name="username" value="${edddservice.jms.username2}" 
/>
                <property name="password" value="${edddservice.jms.password2}" 
/>
        </bean>

When I run the code, I got the following message:

ERROR - JmsComponent                   - Error processing exchange InOnly[
  id: ID:10.225.147.106-11fdcbb6562-2:938
  status: Active
  role: provider
  service: {urn:eddd}jmsDDDRequest
  endpoint: dddrequest
]
java.lang.IllegalStateException: Provider exchange is ACTIVE, but no in or
fault is provided
        at
org.apache.servicemix.jms.endpoints.JmsProviderEndpoint.process(JmsProviderEndpoint.java:487)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(AsyncBaseLifeCycle.java:600)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:554)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.onMessageExchange(AsyncBaseLifeCycle.java:510)
        at
org.apache.servicemix.common.SyncLifeCycleWrapper.onMessageExchange(SyncLifeCycleWrapper.java:60)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:620)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:172)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:168)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:134)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
        at java.lang.Thread.run(Thread.java:595)
ERROR - JmsComponent                   - Error processing exchange InOnly[
-- 
View this message in context: 
http://www.nabble.com/Strange-Exception-to-submit-to-JMS-WebsphereMQ-in-SM3.3-tp22379960p22379960.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to