Kevin,

Thank you! Adding the three MQ JARs to my webApplication/WEB-INF/lib folder 
did the trick. Who'd a thunk it?

/\/\ark /\/.


>From: [EMAIL PROTECTED]
>Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
>Subject: Re: ActionServlet and NoClassDefFoundErrors
>Date: Wed, 17 Apr 2002 16:42:10 -0400
>
>
>
>
>Forget the system classpath.
>
>Are the classes available:
>
>  - in a jar file such as:
>webapp\myWebApp\WEB-INF\lib\MyMQClasses.jar
>  - or down an exploded path such as:
>webapp\myWebApp\WEB-INF\com\path\to\mqclassses
>
>I'd check the specifics how your app server manages CLASSPATH, but I'll bet
>if you put the 3rd party files in one of the above two areas, it will work.
>
>FWIW _
>Kevin
>
>
>
>
>
>
>"Struts Developer" <[EMAIL PROTECTED]> on 04/17/2002 04:48:04
>PM
>
>Please respond to "Struts Users Mailing List"
>       <[EMAIL PROTECTED]>
>
>To:   [EMAIL PROTECTED]
>cc:
>Subject:  ActionServlet and NoClassDefFoundErrors
>
>
>Greetings All,
>
>This is probably a dumb question, and being this close to Friday will
>generate short flippant answers, but here goes anyway…
>
>I have a need to communicate via IBM MQSeries to a legacy application. This
>application has a listener that monitors the queue and posts events in the
>legacy application based on messages it reads from said queue.
>
>I have successfully tested putting messages on the queue from a java class.
>However when I try to call my MessageManager class from my Action class all
>I ever get is a NoClassDefFoundError.
>
>The MessageManager class imports all the necessary MQ packages, and it also
>catches all MQ exceptions and throws a “MessageManagerException” instead. 
>I
>have a test driver that calls this class (independent of my ActionServlet),
>and I can successfully call it all day long.
>
>However, as soon as I try to make the call from my Action subclass I get
>the
>NoClassDefFoundError.
>
>Why, when I call my MessageManager from my test class, does it work, but
>when I call it from my Action class it fails?
>
>If anyone has any ideas please let me know. The source is posted below.
>Thanks in advance,
>Mark N.
>
>============================
>ForteMessageManager class
>============================
>package dhs.vcm.forte.messaging;
>
>
>import com.ibm.mq.*;
>
>
>/*  There are three jar files required in the workspace
>      com.ibm.mq.jar
>      com.ibm.mq.iiop.jar
>      com.ibm.mqbind.jar
>      These should all be in the java/lib directory where MQ client is
>installed.
>      The mqbind.jar file isn't used except for class definitions and was
>only
>      found in the 5.2 installation of MQ Client.
>*/
>
>//----------------------------------------------------- ForteMessageManager
>public class ForteMessageManager {
>
>
>
>//----------------------------------------------------- putMessage
>      public static void putMessage(String msg)
>           throws ForteMessageException {
>
>
>           try {
>
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to establish
>Connection pool") ;
>                ForteMessageConnectionPool messagePool = new
>ForteMessageConnectionPool();
>
>                // open the queue
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to open
>queue") ;
>                MQQueue myQueue = messagePool.getConnection(1);
>
>                // Define a simple MQSeries message, and put message text
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to define
>message ") ;
>                MQMessage myMessage = new MQMessage();
>                myMessage.writeUTF(msg);
>
>                // specify the message options...
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to specify
>message options") ;
>                MQPutMessageOptions pmo = new MQPutMessageOptions();  //
>accept the
>defaults, use MQPMO_DEFAULT constant
>
>                // put the message on the queue
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to place
>message on queue") ;
>                myQueue.put(myMessage,pmo);
>
>                // Close the queue
>                System.out.println("ForteMessageManager.putMessage ... 
>about
>to close the
>queue") ;
>                messagePool.releaseConnection(myQueue);
>
>
>           } catch (ForteMessageException ex) {
>           } catch (MQException ex) {
>                ForteMessageException newEx = new
>ForteMessageException(ex.getMessage());
>                newEx.setCompletionCode(ex.completionCode);
>                newEx.setReasonCode(ex.reasonCode);
>                throw newEx;
>           } catch (java.io.IOException ex) {
>                throw new ForteMessageException(ex.getMessage());
>           }
>
>
>      }
>
>
>
>//----------------------------------------------------- getMessage
>      public static String getMessage()
>           throws ForteMessageException {
>
>
>           String msgText = null;
>
>           try {
>
>                ForteMessageConnectionPool messagePool = new
>ForteMessageConnectionPool();
>
>                // open the queue
>                MQQueue myQueue = messagePool.getConnection(1);
>
>                // Define a MQSeries message buffer to receive the message
>into..
>                MQMessage retrievedMessage = new MQMessage();
>
>                // Set the get message options..
>                MQGetMessageOptions gmo = new MQGetMessageOptions();  //
>accept the
>defaults, use MQGMO_DEFAULT constant
>
>                // get the message off the queue..
>                myQueue.get(retrievedMessage, gmo);
>
>                // set the return value
>                msgText = retrievedMessage.readUTF();
>
>                // Close the queue
>                messagePool.releaseConnection(myQueue);
>
>
>           } catch (ForteMessageException ex) {
>           } catch (MQException ex) {
>                ForteMessageException newEx = new
>ForteMessageException(ex.getMessage());
>                newEx.setCompletionCode(ex.completionCode);
>                newEx.setReasonCode(ex.reasonCode);
>                throw newEx;
>           } catch (java.io.IOException ex) {
>                throw new ForteMessageException(ex.getMessage());
>           }
>
>           return msgText;
>
>
>      } // end of mqTest
>
>//----------------------------------------------------- ForteMessageManager
>- end
>}
>
>
>=============================
>Action Class sample
>=============================
>package dhs.vcm.vis.action;
>
>//  -------------------------------------------------------------- Java
>Includes
>import java.io.IOException;
>import java.util.Hashtable;
>import java.util.Locale;
>import javax.servlet.RequestDispatcher;
>import javax.servlet.ServletException;
>import javax.servlet.http.HttpServletRequest;
>import javax.servlet.http.HttpSession;
>import javax.servlet.http.HttpServletResponse;
>
>//  -------------------------------------------------------------- Struts
>Includes
>import org.apache.struts.action.ActionForm ;
>import org.apache.struts.action.ActionError;
>import org.apache.struts.action.ActionErrors;
>import org.apache.struts.action.ActionForward;
>import org.apache.struts.action.ActionMapping;
>import org.apache.struts.action.ActionServlet;
>import org.apache.struts.util.MessageResources;
>
>//  -------------------------------------------------------------- DHS
>Imports
>import dhs.vcm.forte.messaging.* ;
>import dhs.vcm.vis.business.* ;
>import dhs.vcm.vis.entity.* ;
>import dhs.vcm.vis.form.* ;
>import dhs.vcm.vis.struts.action.VISAction ;
>import dhs.vcm.vis.util.* ;
>
>public class EnterVisitorActionDisplay extends VISAction {
>
>      public ActionForward perform(
>           ActionMapping mapping,
>           ActionForm form,
>           HttpServletRequest request,
>           HttpServletResponse response)
>           throws IOException, ServletException {
>
>           writeToLog("   EnterVisitorActionDisplay : perform : entered") ;
>
>           // Extract attributes we will need
>           Locale locale = getLocale(request);
>           MessageResources messages = getResources();
>           HttpSession session = request.getSession();
>
>           writeToLog("   EnterVisitorActionDisplay : perform : posting
>message") ;
>
>           // Call Forte Message Manager passing it the request to display
>proper
>window
>           messageToPost = "dhsv022910BeginRegisterVisitor" ;
>           putMessageToQueue(messageToPost) ;
>
>           writeToLog("   EnterVisitorActionDisplay : perform : leaving
>now") ;
>
>           // Forward control to the specified success URI
>           return (mapping.findForward("enterVisitor"));
>      }
>
>}
>
>============================
>Action superclass
>============================
>package dhs.vcm.struts.action;
>
>//  -------------------------------------------------------------- DHS
>imports
>import dhs.struts.action.DHSAction ;
>import dhs.vcm.forte.messaging.ForteMessageException ;
>import dhs.vcm.forte.messaging.ForteMessageManager ;
>
>import dhs.vcm.vis.business.ForteMessageProxy ;
>
>public class VCMAction extends dhs.struts.action.DHSAction {
>
>      public void putMessageToQueue(
>           String messageToPost) {
>
>                writeToLog("   VCMAction.putMessageToQueue entered... about
>to post
>message") ;
>
>                ForteMessageManager.putMessage(messageToPost) ;
>
>           }
>
>
>      public void getMessageFromQueue(){
>
>                     try {
>                     String myMsg = ForteMessageManager.getMessage();
>                     writeToLog(myMsg);
>
>                     } catch (ForteMessageException ex) {
>                     }
>
>
>           }
>
>
>}
>
>
>
>
>
>
>_________________________________________________________________
>MSN Photos is the easiest way to share and print your photos:
>http://photos.msn.com/support/worldwide.aspx
>
>
>--
>To unsubscribe, e-mail:   <
>mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <
>mailto:[EMAIL PROTECTED]>
>
>
>
>
>
>
>
>---------------------------------------------------------------------------
>This e-mail message (including attachments, if any) is intended for the use
>of the individual or entity to which it is addressed and may contain
>information that is privileged, proprietary , confidential and exempt from
>disclosure.  If you are not the intended recipient, you are notified that
>any dissemination, distribution or copying of this communication is
>strictly prohibited.  If you have received this communication in error,
>please notify the sender and erase this e-mail message immediately.
>---------------------------------------------------------------------------


_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to