會員註冊 / 登入  |  電腦版  |  Jump to bottom of page

Application Server » 在WIN7下使用JMS連結到WIN2008R2

發表人: jonathan1977, 十級學員
2010-12-27 10:12:59
小弟在做JMS測試時
用其它的WIN版本(如VISTA)連WIN2008R2都正常

可是用WIN7連就出包
它是寫拒決存取,錯誤如下,其中一段
Caused by: java.net.ConnectException: Connection refused: connect

at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
at com.sun.corba.ee.impl.orbutil.ORBUtility.openSocketChannel(ORBUtility.java:106)
at org.glassfish.enterprise.iiop.impl.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:325)
... 14 more


程式碼如下
import java.util.Hashtable;

import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jms.*;
import javax.naming.*;
//import javax.jndi.Referenceable;

public class messageProducer {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Hashtable properties = new Hashtable();

properties.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.enterprise.naming.SerialInitContextFactory");
properties.put(Context.PROVIDER_URL, "iiop://192.168.1.51:7676");
try {
// 建立 Context
InitialContext jndiContext = new InitialContext(properties);
System.out.println("JMS inital well...");

// 查找 ConnectionFactory
ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("TestFactor123");
System.out.println("JMS factory found...");
try {
// Making a connection
Connection connection = connectionFactory.createConnection();
System.out.println("JMS connection established...");

// Intial session
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
System.out.println("Session created...");

// Find destination
Destination pipe = (Destination) jndiContext.lookup("TOPIC");

MessageProducer messageProducer = session.createProducer(pipe);
TextMessage message = session.createTextMessage();
message.setText("Second line");
messageProducer.send(message);


session.close();
System.out.println("Session closed...");
connection.close();
System.out.println("JMS connection closed...");
} catch (JMSException ex) {
Logger.getLogger(messageProducer.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (NamingException ex) {
Logger.getLogger(messageProducer.class.getName()).log(Level.SEVERE, null, ex);
}

System.exit(0);
}
}

有人有試過這方面的設定,在環境上嗎

發表人: andowson, 七段學員
2010-12-29 13:13:49
jonathan1977您好:

關於您的問題,我覺得你提供的資訊太少,別人很難幫上忙,而且這篇又發表在Windows Server版上,所以,我只能用推測來給你一些方向參考看看:
檢查一下您的Windows防火牆設定看看或者檢查看看有沒有安裝別的防毒軟體。

我推測您使用的AP Server是GlassFish,只是不知道是那個版本,有作什麼設定,Client端的程式需要哪些jar檔才能跑,所以我另外找了一篇在GlassFish上跑JMS的參考文章,供有興趣的網友參考:
https://www.packtpub.com/article/setting-glassfish-jms-working-with-message-queues

發表人: jonathan1977, 十級學員
2011-01-05 11:34:23
感謝大大的回文

小弟用的是NETBEAN6.9版的JAVA工具
引入的JAR檔有JMS.JAR和appserv-rt.jar
這二個檔使用在客戶端

大大給的資料真詳細
謝謝呢
最近又在忙其它的事
小弟有空會再試試的




會員註冊 / 登入  |  電腦版  |  Jump to top of page