01: /*
02: * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
03: *
04: * Redistribution and use in source and binary forms, with or without
05: * modification, are permitted provided that the following conditions
06: * are met:
07: *
08: * - Redistributions of source code must retain the above copyright
09: * notice, this list of conditions and the following disclaimer.
10: *
11: * - Redistribution in binary form must reproduce the above copyright
12: * notice, this list of conditions and the following disclaimer in
13: * the documentation and/or other materials provided with the
14: * distribution.
15: *
16: * Neither the name of Sun Microsystems, Inc. or the names of
17: * contributors may be used to endorse or promote products derived
18: * from this software without specific prior written permission.
19: *
20: * This software is provided "AS IS," without a warranty of any
21: * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22: * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24: * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25: * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26: * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27: * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28: * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29: * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30: * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31: * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32: *
33: * You acknowledge that Software is not designed, licensed or intended
34: * for use in the design, construction, operation or maintenance of
35: * any nuclear facility.
36: */
37:
38: package com.sun.j2ee.blueprints.opc.webservice.invoicercvr;
39:
40: import javax.jms.*;
41:
42: /**
43: * A helper class which takes care of sending a JMS message to a topic
44: */
45: public class TopicHelper {
46:
47: private Topic topic;
48: private TopicConnectionFactory topicFactory;
49:
50: /**
51: *
52: * @param qFactory is the connection factory used to get a connection
53: * @param q is the Queue to send the message to
54: */
55: public TopicHelper(TopicConnectionFactory topicFactory, Topic topic) {
56: this .topicFactory = topicFactory;
57: this .topic = topic;
58: return;
59: }
60:
61: /**
62: * Helper method that can be uses to send string message to the topic
63: * @param xmlMessage the text message to be sent
64: * @throws <Code>JMSException</Code> on failure to send
65: */
66: public void sendMessage(String xmlMessage) throws JMSException {
67: TopicConnection connection = null;
68: TopicSession session = null;
69: try {
70: connection = topicFactory.createTopicConnection();
71: session = connection.createTopicSession(false,
72: Session.AUTO_ACKNOWLEDGE);
73: TopicPublisher publisher = session.createPublisher(topic);
74: connection.start();
75: TextMessage message = session.createTextMessage();
76: message.setText(xmlMessage);
77: publisher.publish(message);
78: } finally {
79: try {
80: if (session != null) {
81: session.close();
82: }
83: if (connection != null) {
84: connection.close();
85: }
86: } catch (Exception exception) {
87: exception.printStackTrace(System.err);
88: }
89: }
90: return;
91: }
92: }
|