我需要一个使用ssl的java stomp客户端库
我正在尝试几个用于java的stomp库(gozirra、stompj、activemq)。 所有这些库的文档都很差,例如只有一个示例,我有一个严重的问题: 我需要SSL支持 stomp+ssl协议存在并且受activemq支持,但我找不到支持它的Java客户端。我在Android上找到了关于JMS的信息,其中引用了activemq 5.2及更高版本(下面复制了示例) 还提到的是,可能更适合移动设备,允许仅在代理上维护状态我需要一个使用ssl的java stomp客户端库,java,ssl,activemq,stomp,Java,Ssl,Activemq,Stomp,我正在尝试几个用于java的stomp库(gozirra、stompj、activemq)。 所有这些库的文档都很差,例如只有一个示例,我有一个严重的问题: 我需要SSL支持 stomp+ssl协议存在并且受activemq支持,但我找不到支持它的Java客户端。我在Android上找到了关于JMS的信息,其中引用了activemq 5.2及更高版本(下面复制了示例) 还提到的是,可能更适合移动设备,允许仅在代理上维护状态 StompConnection connection = new Sto
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();
不确定它是否能在Android上运行,但值得一试的是,该客户端在Android上可用。它使用hwatdispatch库,该库内置了标准TCP和SSL传输。无论如何值得一试 使用activemq中的库,请按以下方式执行:
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);
只是好奇。。。如果客户端是Java,为什么要使用Stomp?该应用程序是Android应用程序,我不能使用JMS或openwire(据我所知)。你找到了一个工作正常的Stomp+ssl客户端吗?是的,mgiammarco,链接无法打开。您可以更新吗?谢谢,但我已经找到(并尝试)至少三个java stomp客户端,它们都可以工作。不幸的是没有SSL,我非常需要它。谢谢你的其余想法,但我会在所有尝试失败后尝试使用stomp。你确定你的SSL证书有效吗?您是否成功地使用了任何STOMP+SSL客户端(非Java)?我可以说,我已经成功地将activemq服务器配置为使用STOMP+SSL协议。尝试使用telnet启动ssl协商。我还没有尝试过任何客户端(java或非java)。我按照您的建议尝试过,我看到它支持ssl,但由于没有示例和文档,我无法配置密钥库,因此ssl连接失败。有什么想法吗?好的,我确认FuseSource Stomp实现可以与ssl一起工作,但是缺少文档…它有一个可怕的许可证-如果您使用它,您需要免费提供应用程序源代码,这意味着它在商业上没有用。