[jboss-user] [Messaging, JMS & JBossMQ] - Not able to configure HTTPS jboss-4.2.2.GA for sending mess

subrata_jboss do-not-reply at jboss.com
Fri Mar 7 00:53:36 EST 2008


Hi folks,
 I have two client program.

SenderHTTPQueue.java



import java.util.Properties;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.ObjectMessage;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;



public class SenderHTTPQueue {
	String url_;
	String name_;

	Connection conn = null;
	Session session = null;
	Destination queue = null;
	public static long count;

	public String LOG_CHANNEL_ID = "SenderHTTPQueue";

	public SenderHTTPQueue(String url, String name) throws JMSException,
			NamingException {

		url_ = url;
		name_ = name;
		System.out.println("Inside constructor SenderHTTPQueue()");
		this.initializeSender();

	}

	private void initializeSender() throws JMSException, NamingException {
		Properties env = new Properties();
		env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
				"org.jboss.naming.HttpNamingContextFactory");
		env.setProperty(Context.PROVIDER_URL, url_);

		try {
			System.out.println("Before Initializing context");
			Context ctx = new InitialContext(env);
			System.out.println("Created InitialContext, env= " + env);
			// looking up JMS connection factory over HTTP
			ConnectionFactory connectionFactory = (ConnectionFactory) ctx
					.lookup("/HTTPConnectionFactory");
			System.out.println("connectionFactory= "
					+ connectionFactory.toString());
			queue = (Destination) ctx.lookup(name_);
			conn = connectionFactory.createConnection();
			session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
			System.out.println("Done");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void send(String text) throws JMSException, NamingException {

		// System.out.println(text);
		// Send a text msg
		MessageProducer producer = session.createProducer(queue);
		Message m = session.createTextMessage(text);
		// System.out.println(" sending message in send");
		producer.send(m);
		producer.close();
	}

	/*
	 * public void send(DataObject obj) throws JMSException, NamingException {
	 * MessageProducer producer = session.createProducer(queue);
	 * 
	 * ObjectMessage m = session.createObjectMessage();
	 * 
	 * ((ObjectMessage)m).setObject ((java.io.Serializable)obj);
	 * 
	 * producer.send(m);
	 * 
	 * producer.close(); }
	 */

	public void disconnect() throws JMSException {
		if (conn != null) {
			conn.stop();
		}

		if (session != null) {
			session.close();
		}

		if (conn != null) {
			conn.close();
		}
	}

	public String getTopicName() {
		return name_;
	}

	public String getTopicURL() {
		return url_;
	}

	public static void main(String args[]) {
		System.out.println("Starting SenderHTTPQueue");
		long startTime = System.currentTimeMillis();
		long endTime;
		int tempCount = 0;
		int timeCount = 0;
		try {
			SenderHTTPQueue queue = new SenderHTTPQueue(
					"http://192.168.114.86:8080/invoker/JNDIFactory",
					"queue/examplequeue2");
			for (int i = 0; i < 10; i++) {
				// System.out.println("creating message ");
				queue
						.send("Message sending "
								+ i);
				endTime = System.currentTimeMillis();
				if ((endTime - startTime) >= 60000) {
					timeCount++;
					startTime = endTime;
					System.out.println("Records sent in this minute:"
							+ tempCount);
					System.out.println("Total records sent in " + timeCount
							+ " Minute: " + count);
					tempCount = 0;
				}

				tempCount++;
				count++;

			}
			System.out.println("Total number of records sent :" + count);
		} catch (JMSException e) {
			e.printStackTrace();
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}

Listener.java

package com.facetime.jms.test;

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import java.util.Queue;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueReceiver;
import javax.jms.QueueSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import javax.jms.MessageListener;

public class Listener implements MessageListener {

	String url_;
	String name_;

	Connection conn = null;
	Session session = null;
	Destination queue = null;

	DataOutputStream outputStream;

	ArrayList list = null;

	long count = 0;

	public Listener(String url, String name) {
		super();

		try {
			outputStream = new DataOutputStream(
					new FileOutputStream("data.txt"));
		} catch (Exception e) {
			System.out.println("Error in opening the file");
		}

		url_ = url;
		name_ = name;

		list = new ArrayList();

		try {
			this.initializeListener();
		} catch (Exception e) {
			// System.out.println("Error creating listener: " + e);
			e.printStackTrace();
		}
	}

	private void initializeListener() throws JMSException, NamingException {
		Properties env = new Properties();
		env.setProperty(Context.INITIAL_CONTEXT_FACTORY,
				"org.jboss.naming.HttpNamingContextFactory");
		env.setProperty(Context.PROVIDER_URL, url_);

		Context ctx = new InitialContext(env);

		QueueConnectionFactory connectionFactory = (QueueConnectionFactory) ctx
				.lookup("HTTPConnectionFactory");
		System.out
				.println("connectionFactory= " + connectionFactory.toString());

		queue = (Destination) ctx.lookup(name_);

		conn = connectionFactory.createConnection();

		session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);

		MessageConsumer recv = session.createConsumer(queue);

		recv.setMessageListener(this);
		conn.start();
	}

	public void onMessage(Message msg) {

		try {

			TextMessage t = null;

			if (msg instanceof TextMessage) {
				t = (TextMessage) msg;
				System.out.println(count++ + ") " + t.getText());
				// outputStream.writeChars(t.getText() + "\n");
			}

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public void disconnect() throws JMSException {
		if (conn != null) {
			conn.stop();
		}

		if (session != null) {
			session.close();
		}

		if (conn != null) {
			conn.close();
		}
	}

	public long getCount() {
		return count;
	}

	public static void main(String args[]) {

		System.out.println("Starting JMS Listener");

		Listener listener = new Listener(
				"http://192.168.114.86:8080/invoker/JNDIFactory",
				"queue/examplequeue2");

		try {
			Thread.sleep(60 * 60 * 1000);
		} catch (Exception e) {
			System.out.println("Error sleeping: " + e);
			e.printStackTrace();
		}

		System.out.println("Total records read: " + listener.getCount());

		try {
			listener.disconnect();
		} catch (Exception e) {
			System.out.println("Error terminating listener JMS objects: " + e);
			e.printStackTrace();
		}

		System.out.println("Done listening");
	}

}

Now i am able to send receive message using http request.

I want to change it such a way that it works with https
what i did :
  1) changed server.xml to change connector as
      <Connector port="8443"  address="192.168.114.86" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" 
               keystoreFile="D:\server\jboss-4.2.2.GA\server\default\deploy\jms\conf\keystore"
               keystorePass="subrata"

2) and jndi url as https://192.168.114.86:8080/invoker/JNDIFactorySSL

but it not working !
Any help will be great !

I am trying to do simple https using key file and password by changing
connector in server.xml , but it is also not working !

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4134742#4134742

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4134742



More information about the jboss-user mailing list