2016-07-03 16 views
8

私は、OpenFire 4.0.2の模擬クライアントとして使用しているSmack 4.1.7を実装しているJavaアプリケーションを持っています。現時点では、私のlocalhost上でOpenfireが実行されています。以下のスマック作成またはMUC、要求がタイムアウト(SmackException $ NoResponseException)とOpenfireに参加しようとすると今ローカルホスト上のSmackとOpenfireの間のルーティングエラー

XMPPTCPConnectionConfiguration conf = XMPPTCPConnectionConfiguration.builder() 
     .setSecurityMode(ConnectionConfiguration.SecurityMode.disabled) 
     .setServiceName(XMPP_HOST_NAME) // equals xmppDomain on server 
     .setUsernameAndPassword("user1", "pwd1") 
     .setResource("tester") 
     .setDebuggerEnabled(true) 
     .build(); 

記録します:

2016.07.03 18:58:54 org.jivesoftware.openfire.spi.RoutingTableImpl - 
Unable to route packet. Packet should only be sent to available sessions and the 
route is not available. 
<presence id="WrkXH-6" from="[email protected]/tester" to="[email protected]/tester"> 
    <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="NfJ3flI83zSdUDzCEICtbypursw="/> 
</presence> 
2016.07.03 18:58:54 org.jivesoftware.openfire.spi.RoutingTableImpl - 
Failed to route packet to JID: [email protected]/tester packet: 
<presence id="WrkXH-6" from="[email protected]/tester" to="[email protected]/tester"> 
    <c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://www.igniterealtime.org/projects/smack" ver="NfJ3flI83zSdUDzCEICtbypursw="/> 
</presence> 
スマックは、ログインしてこの接続を正常に認証することができます

私は "localhost"、 "127.0.0.1"と私のマシンの名前をXMPP_HOST_NAMEとしてサーバー側とクライアント側の両方で使用していますが、同じエラーが発生しています。どんな助けもありがとう。

+0

申し訳ありませんが、ユーザーとのログインは完了しましたか? localhostは動作しませんが、マシン名(ただし、コントロールパネルのopenfireサーバ名を確認する必要があります)が動作します。私と同じ人との出会いは奇妙に思えますが、私は – MrPk

+0

をチェックしなければなりません。ログインは正常に動作します。どちらも、localhost、127.0.0.1、マシン名で動作します(openfire側で設定されているものに関係なく)。接続を確立するときにSmack側に警告があります:org.jivesoftware.smack.util.DNSUtil resolveDomain 警告:ローカルホストのSRVレコードを再構築中に例外が発生しました。 '_xmpp-(server | client)._ tcp' DNS SRVレコードを追加することをお勧めしますが、その接続と認証からの接続は問題ありません。 – guik

+0

おそらくプロキシがあり、例外としてlocalhost(yes、127.0.0.1)を追加する必要があります... – MrPk

答えて

0

私はこの問題とバグを見つけました。 対処方法:

Openfireは、2つの値があります。

http.connection.timeout 
http.socket.timeout 

両方がプロパティであれば利用できません2000/3000/5000 millisecsのデフォルト値をアップsetted。

管理コンソール(またはデータベース)でこの値を設定する必要があります(必要に応じて15000/20000以上など)。そこrssfeed(デフォルトで有効になって)を確認するための呼び出しがありますが、この呼び出しはそう、3000にこれらの値をリセットしますindex.jspをで(あまりにも広告おそらく古いバージョン)Openfire 4.0.2で、

詳細基本的にタイムアウトは無駄になります。

rss.enabled 

にrssfeedセットを無効にしてOpenfireを再起動します。

関連する問題