2012-01-11 63 views
0

這是我一直在打擊我的頭一天。
我有一箇舊版本的jboss(jboss4),並從它內部我啓動一些代碼出去並連接到一個執行聲波mq(7.6,我認爲),我作爲一個客戶端運行。我正在運行java 1.6.0_23。這就是說我看到非常奇怪的行爲,我似乎無法弄清楚。jboss和聲波mq打得不好

當我的過程開始我加載所有的JNDI的道具,我需要建立到聲波MQ服務器的連接,然後我召喚出這樣

Context ic = new InitialContext(jndiEnv); 

但是我看到我的絲鯊沒有交通在那個時候,它讓我感到困惑。最終,這將超時給我異常

javax.naming.NamingException. Root exception is com.sonicsw.mf.comm.ConnectTimeoutException: Timeout occured while attempting to connect 

在牙齒的真正踢的是,我在同一臺服務器上運行我的過程,從一個獨立的罐子(而不是從JBoss的範圍內),並把它連接罰款?

回答

4

嘿任何人遇到這個......所以,我解決我的問題,我想我會分享它...

事實證明,即使聲波技術團隊說他們的代碼從不看jvm變量javax.ssl.keystore ...它確實...

它被設置爲這樣 javax.ssl.keystore = C:東西 這會導致初始上下文生成掛起,直到超時。 然而這 javax.ssl.keystore = C:\東西 會工作。 ,如果它沒有設置它將工作以及...

我會期待某種異常被拋出:?

我希望這可以幫助別人! :)

感謝 Ĵ

0

有兩件事:
你可以在JBoss服務器上的類路徑中檢查所需的jar嗎?
您是否正在設置獲取Sonic目錄服務的初始上下文對象ref所需的Sonic MQ的域名屬性?

private Properties getConnectionEnv(String initialContextFactory,String providerURL, String domain, String userName, String password) { 
    Properties connectionEnv = new Properties(); 
    if (initialContextFactory != null && initialContextFactory.length() != 0) { 
    connectionEnv.put(Context.INITIAL_CONTEXT_FACTORY,initialContextFactory); 
    } 
    if (providerURL != null && providerURL.length() != 0) 
    connectionEnv.put(Context.PROVIDER_URL, providerURL); 
    if (domain != null && domain.length() != 0) 
    connectionEnv.put("com.sonicsw.jndi.mfcontext.domain", domain); 
    if (userName != null && userName.length() != 0) { 
    connectionEnv.put(Context.SECURITY_PRINCIPAL, userName); 
    connectionEnv.put(Context.SECURITY_CREDENTIALS, password); 
    } 
    return connectionEnv; 
} 

希望這可以幫助你..

GK

+0

GK - 感謝您的答覆,我設置連接所需的一切,這是在同一時間工作,但隨後的JBoss重啓後停止。 – 2012-01-13 18:45:07

+0

我現在正在研究解決這個問題的兩件事是如何爲客戶端記錄Sonic庫,並研究是否有可能讓jboss無法解析地址或無法訪問港口... – 2012-01-13 19:02:17