「SmackAPI」(XMPP)と「JAINSIP」API(SIP)を使用してSIP-XMPPゲートウェイを作成しました。私のアプリケーションには3つのスレッドがあります。1つはSIPの送受信用、1つはXMPPの送受信用、もう1つは着信メッセージを保存して反対のプロトコルスレッドにリダイレクトするための「MessageQueue」です(着信SIP->発信XMPP、着信XMPP- >発信SIP)
現在、WindowsコンピューターのEclipseでゲートウェイを実行していますが、完全に機能します。しかし、Eclipseプロジェクトを.jarファイルにエクスポートしてUbuntuサーバーで実行すると、着信メッセージはメッセージキューに保存されますが、リダイレクトされません。
両方のOSで同じJDKバージョン「1.6.0_14」を使用してアプリケーションを実行しています。Javaのスレッドは、WindowsシステムとUNIXシステムでわずかに異なる方法で実行されることを読みました。私は何か間違ったことをしていますか、それともスレッドはそれが実行されているOSで保留中に異なって実行されますか?
MessageQueue queue = new MessageQueue();
XMPPMessageListener xmppThread = new XMPPMessageListener();
SIPThread sipThread = new SIPThread();
new Thread(queue).start();
sipThread.setQueue(queue);
xmppThread.setQueue(queue);
queue.setXMPPThread(xmppThread);
queue.setSipThread(sipThread);
new Thread(xmppThread).start();
new Thread(sipThread).start();