練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術
在WIN7下使用JMS連結到WIN2008R2 RSS feed
Forum Index » Windows Server
Author Message
jonathan1977

十級學員

Joined: 2010/5/25
Messages: 9
Offline
小弟在做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

七段學員
[Avatar]

Joined: 2007/1/2
Messages: 706
Location: 台北
Offline
jonathan1977您好:

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

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

分享經驗 累積智慧
[WWW] [MSN]
jonathan1977

十級學員

Joined: 2010/5/25
Messages: 9
Offline
感謝大大的回文

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

大大給的資料真詳細
謝謝呢
最近又在忙其它的事
小弟有空會再試試的
 
Forum Index » Windows Server
Go to:   
Mobile view