SmartGWT Pro 3.0 nightly Jan 30, 2011
I am hoping to get some configuration help. I am unable to send a message (errors below) with the Message Module when I attempt to connect to WebLogic's JMS. My code works when using the LocalMessageDispatcher.
As for my problem, I am able to get the MessageDispatcher and the subscribers but I receive a null pointer error when I try to send the message.
I based my JMSMessageDispatcher configuration, shown below, off of the information found in the thread http://forums.smartclient.com/archiv...php/t-346.html. I have read the Messaging_QuickRef.pdf.
WebLogic(10.3.5) has a default TopicConnectionFactory available via javax/jms/TopicConnectionFactory, but I couldn't figure out how to access it via server.properties.
I have hacked away at the configuration but finally have to say 'Mercy'.
I would be very, very thankful for any assistance/guidance.
The error:
Server code from ...DMI.java
server.properties:
jndi.properties:
WebLogic JMS configuration:
little debugging via a JNDI "tree walk":
I am hoping to get some configuration help. I am unable to send a message (errors below) with the Message Module when I attempt to connect to WebLogic's JMS. My code works when using the LocalMessageDispatcher.
As for my problem, I am able to get the MessageDispatcher and the subscribers but I receive a null pointer error when I try to send the message.
I based my JMSMessageDispatcher configuration, shown below, off of the information found in the thread http://forums.smartclient.com/archiv...php/t-346.html. I have read the Messaging_QuickRef.pdf.
WebLogic(10.3.5) has a default TopicConnectionFactory available via javax/jms/TopicConnectionFactory, but I couldn't figure out how to access it via server.properties.
I have hacked away at the configuration but finally have to say 'Mercy'.
I would be very, very thankful for any assistance/guidance.
The error:
Code:
=== 2012-02-15 19:00:47,540 [ng)'] ERROR JMSMessageDispatcher - Unable to deliver jms message java.lang.NullPointerException at com.isomorphic.messaging.JMSMessageDispatcher.iscMessage(JMSMessageDispatcher.java:227) at com.isomorphic.messaging.JMSMessageDispatcher.onMessage(JMSMessageDispatcher.java:179) at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659) at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345) at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821) at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115) at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170) at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209) at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Code:
... private ISCMessageDispatcher messageDispatcher = null; private static final String CHANNEL_NAME = "feedbackChannel"; private void notifyUpdate(Object data) { // Lazy Initialization - useless, since I'm using "new" if (messageDispatcher == null) { try { messageDispatcher = ISCMessageDispatcher.instance(); } catch (Exception e1) { e1.printStackTrace(); } } //Debugging System.out.println("think I might want to send a message"); Set subsribers = messageDispatcher.getSubscribersForChannel(CHANNEL_NAME); final boolean doSend = (messageDispatcher != null && subsribers != null && subsribers.size() != 0); if (doSend) { try { //Debugging System.out.println("Sending message"); messageDispatcher.deliver(new ISCMessage(CHANNEL_NAME, null)); } catch (Exception e1) { e1.printStackTrace(); } } }
Code:
messaging.keepaliveInterval: 10000 messaging.keepaliveReestablishDelay: 1000 messaging.connectTimeout: 4000 messaging.connectionTTL: 120000 messaging.flushBufferSize: 8096 messaging.dispatcherImplementer: com.isomorphic.messaging.JMSMessageDispatcher jndi.messaging.java.naming.factory.initial:weblogic.jndi.WLInitialContextFactory messaging.jms.context: messaging messaging.jms.jndiPrefix: jms messaging.jms.topicConnectionFactory: SmartClientTopicConnectionFactory
Code:
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory connectionFactoryNames=SmartClientTopicConnectionFactory topic.jms.feedbackChannel=feedbackChannel
Code:
<?xml version='1.0' encoding='UTF-8'?> <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd"> <connection-factory name="SmartClientTopicConnectionFactory"> <sub-deployment-name>SmartClientSub</sub-deployment-name> <default-targeting-enabled>false</default-targeting-enabled> <jndi-name>jms/SmartClientTopicConnectionFactory</jndi-name> <client-params> <client-id-policy>Restricted</client-id-policy> <subscription-sharing-policy>Sharable</subscription-sharing-policy> <messages-maximum>10</messages-maximum> </client-params> <transaction-params> <transaction-timeout>3600</transaction-timeout> <xa-connection-factory-enabled>true</xa-connection-factory-enabled> </transaction-params> <security-params> <attach-jmsx-user-id>false</attach-jmsx-user-id> </security-params> </connection-factory> <topic name="feedbackChannel"> <sub-deployment-name>SmartClientSub</sub-deployment-name> <attach-sender>supports</attach-sender> <production-paused-at-startup>false</production-paused-at-startup> <insertion-paused-at-startup>false</insertion-paused-at-startup> <consumption-paused-at-startup>false</consumption-paused-at-startup> <jndi-name>jms/feedbackChannel</jndi-name> <default-unit-of-order>false</default-unit-of-order> <saf-export-policy>All</saf-export-policy> <messaging-performance-preference>25</messaging-performance-preference> <unit-of-work-handling-policy>PassThrough</unit-of-work-handling-policy> <incomplete-work-expiration-time>-1</incomplete-work-expiration-time> </topic> </weblogic-jms>
Code:
-->weblogic: weblogic.jndi.internal.ServerNamingNode -->jms: weblogic.jndi.internal.ServerNamingNode -->SmartClientTopicConnectionFactory: weblogic.rmi.cluster.ClusterableRemoteObject -->feedbackChannel: weblogic.jms.common.WrappedDestinationImpl -->javax: weblogic.jndi.internal.ServerNamingNode -->jdbc: weblogic.jndi.internal.ServerNamingNode -->EmdwhGwtSvc: weblogic.rmi.cluster.ClusterableRemoteObject
Comment