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