|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  Using Servlet for MQseries | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | chanchal | 
		  
		    
			  
				 Posted: Thu Mar 18, 2004 8:38 am    Post subject: Using Servlet for MQseries | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 30 Jan 2004 Posts: 38
  
  | 
		  
		    
			  
				Hey, I am passing some form parameters to a Servlet which is creating a MQseries message from these parameters and putting it in a queue.I am using JBoss application server.When Servlet is invoked it displays the parameters and their value passed fro form but gives error in MQseries code:
 
--------------------------------------------------------------
 
Creating a QueueConnectionFactory Creating a Connection 
 
HTTP ERROR: 500 javax/resource/ResourceException
 
RequestURI=/HelloWorldContext/Simple 
 
-----------------------------------------------------------------------------
 
 
I putted all jar files in my application folder(Ear) and added into application.xml file.Do I need to do anything in addition to that??Its very simple example.Please take a look at this and let me know where I am wrong.Here is my Servlet code:
 
------------------------------------------------------------------------
 
 
import java.io.*;
 
import java.util.*;
 
import javax.servlet.*;
 
import javax.servlet.http.*;
 
import javax.jms.*;
 
import com.ibm.mq.jms.MQQueueConnectionFactory;
 
 
// Import required for program tracing
 
import com.ibm.mq.jms.services.ConfigEnvironment;
 
 
 
public class Simple extends javax.servlet.http.HttpServlet
 
{
 
 
public static String QMGR = "QM1";
 
public static final String QUEUE = "SYSTEM.DEFAULT.LOCAL.QUEUE" ;
 
Queue ioQueue= null;
 
QueueSession session = null;
 
QueueConnection connection = null;
 
QueueConnectionFactory factory = null;
 
//define a queue manager object
 
 
public Simple()
 
{
 
 
super();
 
System.out.println("Inside constructor");
 
}
 
 
 
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException 
 
{
 
 
String tempAddress = "Input information is";
 
res.setContentType("text/plain");
 
PrintWriter out = res.getWriter();
 
 
if ("application/x-www-form-urlencoded".equals(req.getContentType()))
 
{
 
out.println("In doPost()");
 
Enumeration enum = req.getParameterNames();
 
while (enum.hasMoreElements())
 
{
 
String name = (String) enum.nextElement();
 
String values = req.getParameter(name);
 
if(values != null)
 
{
 
tempAddress = tempAddress + "; " + name + ": " + values;
 
}
 
 
}
 
out.println(tempAddress);
 
 
try
 
{
 
out.println("Creating a QueueConnectionFactory");
 
factory = new MQQueueConnectionFactory();
 
((MQQueueConnectionFactory)factory).setQueueManager(QMGR);
 
 
// Create a QueueConnection from the QueueConnectionFactory
 
out.println("Creating a Connection");
 
connection = factory.createQueueConnection();
 
 
// IMPORTANT: Receive calls will be blocked if the connection is
 
// not explicitly started, so make sure that we do so!
 
out.println("Starting the Connection");
 
connection.start();
 
 
// We now create a QueueSession from the connection. Here we
 
// specify that it shouldn't be transacted, and that it should
 
// automatically acknowledge received messages
 
out.println("Creating a Session");
 
boolean transacted = false;
 
session = connection.createQueueSession( transacted,Session.AUTO_ACKNOWLEDGE);
 
// Use the session to create the queue object, supplying
 
// the required MQ-specific parameter
 
ioQueue = session.createQueue( QUEUE );
 
 
// We now use the session to create a QueueSender, passing in the
 
// destination (the Queue object) as a parameter
 
out.println("Creating a QueueSender");
 
QueueSender queueSender = session.createSender(ioQueue);
 
 
// Create a QueueReceiver in the same way
 
out.println( "Creating a QueueReceiver");
 
QueueReceiver queueReceiver = session.createReceiver(ioQueue);
 
 
// The session is used to create messages, so create an empty
 
// TextMessage and fill it with some data
 
out.println( "Creating a TextMessage" );
 
TextMessage outMessage = session.createTextMessage();
 
out.println("Adding Text");
 
outMessage.setText(tempAddress);
 
 
// Ask the QueueSender to send the message we have created
 
out.println( "Sending the message to " + ioQueue.getQueueName() );
 
queueSender.send(outMessage);
 
 
// Now use the QueueReceiver to retrieve the message, blocking
 
// for a maximum of 1000ms. The receive call returns when the
 
// message arrives, or after 1000ms, whichever is sooner
 
out.println( "Reading the message back again" );
 
Message inMessage = queueReceiver.receive(1000);
 
 
// Check to see if the receive call has actually returned a
 
// message. If it hasn't, report this and throw an exception...
 
if( inMessage == null )
 
{
 
out.println( "The attempt to read the message back again " +
 
"failed, apparently because it wasn't there");
 
throw new JMSException("Failed to get message back again");
 
 
}
 
 
out.println( "\n" + "Got message"+": "+inMessage);
 
 
// Check that the message received (a) is of the correct type,
 
// and (b) contains the same text as the one sent, reporting the
 
// result of these two checks
 
if( inMessage instanceof TextMessage )
 
{
 
 
// Extract the message content with getText()
 
String replyString = ((TextMessage) inMessage).getText();
 
 
// Test its equality with the message text sent
 
if( replyString.equals(tempAddress) )
 
{
 
out.println("Reply string equals original string");
 
} 
 
else
 
{
 
// If they differ, print them both out
 
out.println("Error! Reply string differs from " + "original string");
 
out.println("Original string = '" + tempAddress + "'");
 
out.println("Reply string = '" + replyString + "'");
 
}
 
} 
 
else
 
{
 
// Report that the incoming message was not of the expected
 
// type, and throw an exception
 
out.println("Reply message was not a TextMessage");
 
throw new JMSException("Retrieved the wrong type of message");
 
}
 
 
// Remember to call the close() method on all of the objects
 
// used, to ensure proper clean-up of resources
 
 
// Closing QueueReceiver
 
out.println("Closing QueueReceiver");
 
queueReceiver.close();
 
 
// Closing QueueSender
 
out.println("Closing QueueSender");
 
queueSender.close();
 
 
// Closing QueueSesssion.
 
out.println("Closing Session");
 
session.close();
 
session = null;
 
 
// Closing QueueConnection.
 
out.println("Closing Connection");
 
connection.close();
 
connection = null;
 
} 
 
catch( JMSException je )
 
{
 
out.println("caught JMSException: " + je);
 
// check for a linked exception that provides more detail
 
Exception le = je.getLinkedException();
 
if (le != null) out.println("linked exception: "+le);
 
 
} 
 
catch( Exception e )
 
{
 
// This catches any exception thrown in the main body of
 
// the program, displaying it on screen
 
out.println("Caught exception: " + e );
 
 
} 
 
 
finally 
 
{
 
// A finally block is a good place to ensure that we don't forget
 
// to close the most important JMS objects
 
try 
 
{
 
if (session != null)
 
{
 
out.println("closing session");
 
session.close();
 
}
 
if (connection != null)
 
{
 
out.println("closing connection");
 
connection.close();
 
}
 
}
 
catch (JMSException je)
 
{
 
out.println("failed with "+je);
 
}
 
}
 
 
out.println("finished");
 
}
 
}
 
 
}
 
------------------------------------------------------------------------------- | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | bower5932 | 
		  
		    
			  
				 Posted: Thu Mar 18, 2004 10:55 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Jedi Knight
 
 Joined: 27 Aug 2001 Posts: 3023 Location: Dallas, TX, USA 
  | 
		  
		    
			  
				| My guess would be that you don't have everything configured in your classpath. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | 
		    
		   | 
		 
	   
	 | 
   
 
  
	     | 
	 | 
	Page 1 of 1 | 
   
 
 
 
  
  	
	  
		
		  
 
  | 
		  You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |