[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