2012-02-19 8 views
9

java(gozirra、stompj、activemq)用のいくつかのstompライブラリを試しています。 これらのライブラリはいずれも例が1つしかないなどの貧弱なドキュメントを持っており、重大な問題があります。sslで動作するjava stompクライアントライブラリが必要です

SSLサポートが必要です。

stomp + sslプロトコルが存在し、activemqでサポートされていますが、サポートするJavaクライアントが見つかりません。

+0

興味があるだけ...、なぜストンプを使用していますか? –

+0

アプリケーションはAndroidアプリケーションであり、JMSまたはopenwireを使用することはできません(私が知る限り)。 – mgiammarco

+0

stomp + sslクライアントが動作していますか? – alexvetter

答えて

2

それを行うこの方法:クライアントは、Javaであれば

   System.setProperty("javax.net.ssl.keyStore", 
      "/home/foo/.keystore/client.ks"); 
    System.setProperty("javax.net.ssl.keyStorePassword", "changeme"); 
    System.setProperty("javax.net.ssl.trustStore", 
      "/home/foo/.keystore/client.ts"); 

    StompConnection connection = new StompConnection(); 
    SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory 
      .getDefault(); 
    SSLSocket sslsocket = (SSLSocket) factory.createSocket("127.0.0.1", 
      61612); 
    connection.open(sslsocket); 
3

私も言及

REST API状態が維持されることを可能にする、モバイルデバイスのためのより良いフィットかもしれないということであるActiveMQの5.2に含まthe experimental Stomp APIと大きくを参照AndroidのJMS、(例えば以下コピー)についてthis forum discussionを発見純粋にブローカーで。

StompConnection connection = new StompConnection(); 
connection.open("localhost", 61613); 

connection.connect("system", "manager"); 
StompFrame connect = connection.receive(); 
if (!connect.getAction().equals(Stomp.Responses.CONNECTED)) { 
    throw new Exception ("Not connected"); 
} 

connection.begin("tx1"); 
connection.send("/queue/test", "message1", "tx1", null); 
connection.send("/queue/test", "message2", "tx1", null); 
connection.commit("tx1"); 

connection.subscribe("/queue/test", Subscribe.AckModeValues.CLIENT); 

connection.begin("tx2"); 

StompFrame message = connection.receive(); 
System.out.println(message.getBody()); 
connection.ack(message, "tx2"); 

message = connection.receive(); 
System.out.println(message.getBody()); 
connection.ack(message, "tx2"); 

connection.commit("tx2"); 
connection.disconnect(); 
+0

ありがとうございますが、私は少なくとも3つのJava Stompクライアントを見つけて(試してみました)、彼らが働いています。残念ながらSSLはありません。 RESTのアイデアをありがとうが、私はストンプですべての試行に失敗した後に試してみる。 – mgiammarco

+0

SSL証明書が正常に機能していますか? STOMP + SSLクライアント(Java以外)で成功しましたか? –

+0

私は、stomp + sslプロトコルを使用するように、activemqサーバーを正常に構成したと言えます。 telnetで試してみると、ssl交渉が始まります。私はまだクライアント(JavaまたはJava以外)で試していません。 – mgiammarco

2

ない、それは、Android上で動作を確認しますが、試してみる価値はGithubで利用可能FuseSource StompJMSクライアントです。それは、標準的なTCPとSSLの両方のトランスポートが組み込まれたhwatdispatchライブラリを使用しています。 ActiveMQからライブラリを

+0

あなたの提案に従ってみましたが、私はそれがsslをサポートしているのを見ましたが、例とドキュメントはないので、キーストアを設定することができず、ssl接続が失敗します。何か案が? – mgiammarco

+0

私はFuseSource Stompの実装がsslで動作することを確認していますが、ドキュメントが不足しています... – mgiammarco

+0

これは恐ろしいライセンスがあります - あなたがアプリケーションソースコードを自由に利用できるようにする必要があります。 – tentimes

関連する問題