* glassfish_home/domains/domain1/config/sun-acc.xml
<target-server name="PCNameJMSWebServer" address="10.0.0.26" port="3700"/>
In address must be IP address of JMS Server.
Example for send message to remote JMS Server:
Context jndiContext = null;
ConnectionFactory connectionFactory = null;
Connection connection = null;
Session session = null;
Queue queue = null;
MessageProducer messageProducer = null;
try
{
//[1] Create a JNDI API InitialContext object.
Hashtable properties = new Hashtable(2);
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.appserv.naming.S1ASCtxFactory");
properties.put(Context.PROVIDER_URL, "iiop://10.0.0.26:3700"); *//FOR EACH SERVER MUST BE HIS OWN PROVIDER. The iiop provider is for GlassFish.*
jndiContext = new InitialContext(properties);
//[2] Look up connection factory and queue.
connectionFactory = (ConnectionFactory)jndiContext.lookup("jms/ConnectionFactory");
queue = (Queue)jndiContext.lookup("jms/Queue");
//[3]
// - Create connection
// - Create session from connection; false means session is not transacted.
// - Create sender and text message.
// - Send messages, varying text slightly.
connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
messageProducer = session.createProducer(queue);
//[3.1] send a message
TextMessage message = session.createTextMessage(this.jTextSend.getText());
messageProducer.send(message);
//[3.2] example for send some object
//ObjectMessage message = session.createObjectMessage();
//Cards cards = new Cards(11, "Pupkin"); //this class must be serializable
//message.setObject(cards);
//messageProducer.send(message);
}
catch(Exception ex)
{
Logger.getLogger(JFrameMain.class.getName()).log(Level.SEVERE, null, e);
}
finally
{
//[3.1]
if(connection !=null)
{
try
{
connection.close();
}
catch(JMSException e)
{
Logger.getLogger(JFrameMain.class.getName()).log(Level.SEVERE, null, e);
}
}
}
target-server name="PCNameJMSWebServer" address="10.0.0.26" port="3700"/> In address must be IP address of JMS Server.
Actually, since this is the RMI port (3700), the address is the one from the app server. It just so happens that in your installation, the IP address is the same one as the JMS broker.
Try it with the different jar files (this will make your client installation smaller...)
java.lang.NullPointerException
at com.sun.enterprise.resource.PoolManagerImpl.getResourceFromPool(PoolManagerImpl.java:248)
at com.sun.enterprise.resource.PoolManagerImpl.getResource(PoolManagerImpl.java:176)
at com.sun.enterprise.connectors.ConnectionManagerImpl.internalGetConnection(ConnectionManagerImpl.java:337)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:189)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:165)
at com.sun.enterprise.connectors.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:158)
at com.sun.messaging.jms.ra.DirectConnectionFactory._allocateConnection(DirectConnectionFactory.java:569)
at com.sun.messaging.jms.ra.DirectConnectionFactory.createConnection(DirectConnectionFactory.java:262)
at com.ipc.sendMessage.processRequest(sendMessage.java:71)
at com.ipc.sendMessage.doGet(sendMessage.java:126)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:317)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:198)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:288)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:272)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Re: JMS Standalone Remote Client. Ho to connect to remote JMS Provider?
May 23, 2008 8:59 AM
(reply 6
of 8) (In reply to
#5 )
Sounds like you didn't define your JMS resources in the application server... Or the JNDI name (or the jms names) are not the ones the application is using...
Re: JMS Standalone Remote Client. Ho to connect to remote JMS Provider?
Jun 2, 2009 10:38 AM
(reply 7
of 8) (In reply to
#5 )
Did you ever figure this out? I am running into a similar situation and would interested to know what was wrong. I have checked my jms names million times.
Re: JMS Standalone Remote Client. Ho to connect to remote JMS Provider?
Jun 5, 2009 3:00 AM
(reply 8
of 8) (In reply to
#3 )
TravelEntity,
what is the purpose of sun-acc.xml file? Does it play role if I am running client and server on the same machine? My practice shows that probably not...