Java WSS连接无法创建传输异常

我对此深感困惑。

我想订阅一个ActiveMQ主题。ActiveMQ在Centos机器上工作,而不是LOCALHOST我可以使用tcp,http协议使用消息。代码;

public static void main(String[] args) throws JMSException {
    PropertyUtils.loadPropertyFile();
    Properties receiverProperties = PropertyUtils.getreceiverProperties();

    // URL of the JMS server
    String url = (String) receiverProperties.get("receiver.connection.url");

    // Name of the queue we will receive messages from
    String subject = (String) receiverProperties.get("receiver.topic.name");

    // Getting JMS connection from the server
    ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
    Connection connection = connectionFactory.createConnection();
    connection.start();

    // Creating session for getting messages
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

    // Getting the topic
    Destination destination = session.createTopic(subject);

    // MessageConsumer is used for receiving (consuming) messages
    MessageConsumer consumer = session.createConsumer(destination);
    Message message = null;

    // Here we receive the message.
    while (true) {
        message = consumer.receive();
        if (message instanceof TextMessage) {
            TextMessage textMessage = (TextMessage) message;
            System.out.println("Received message '" + textMessage.getText() + "'");
        }
    }

    // We will be using TestMessage in our example. MessageProducer sent us a
    // TextMessage
    // so we must cast to it to get access to its .getText() method.
    // connection.close();
}

我想使用wss协议。这对我来说是必须的。当我用wss:// host:port更改url时;

Could not create Transport. Reason: java.io.IOException: createTransport() method not implemented!

所以我检查了替代方案。人们通过Stomp over WS解决了这个问题。我的第一个成就是wss connection。

任何建议将不胜感激!

我试图为STOMP编写一个侦听器;

import org.apache.activemq.transport.stomp.Stomp;
import org.apache.activemq.transport.stomp.StompConnection;
import org.apache.activemq.transport.stomp.StompFrame;
 
public class StompListener {

    public static void main(String[] args) { 

        StompConnection connection = new StompConnection();
        try {
            connection.open("host", 61613);
            connection.connect("admin", "admin", "test");
            connection.subscribe("TEST_TOPIC", Stomp.Headers.Subscribe.AckModeValues.CLIENT);
            connection.begin("test"); 

            while (true) {
                try {
                        StompFrame message = connection.receive(10000); 
                        System.out.println(String.format("%s - Receiver: received '%s'", new Date(), message.getBody()));
                } catch (SocketTimeoutException e) {
                        // ignore
                        e.printStackTrace();
                }
            }
        } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
    }
}

此代码在“ connection.receive”行上引发异常。

java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
    at java.net.SocketInputStream.read(SocketInputStream.java:171)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.net.SocketInputStream.read(SocketInputStream.java:224)
    at java.io.DataInputStream.readByte(DataInputStream.java:265)
    at org.apache.activemq.transport.stomp.StompWireFormat.readHeaderLine(StompWireFormat.java:174)
    at org.apache.activemq.transport.stomp.StompWireFormat.readLine(StompWireFormat.java:167)
    at org.apache.activemq.transport.stomp.StompWireFormat.parseAction(StompWireFormat.java:200)
    at org.apache.activemq.transport.stomp.StompWireFormat.unmarshal(StompWireFormat.java:112)
    at org.apache.activemq.transport.stomp.StompConnection.receive(StompConnection.java:77)
    at tr.com.estherial.stomplistener.StompListener.main(StompListener.java:25)
贾斯汀·伯特拉姆

您所看到的异常是预料之中的,因为您使用的OpenWire JMS客户端不支持WebSocket连接,并且实际上并不需要。WebSocket连接实际上仅与在有限环境(例如Web浏览器)中运行的客户端有关。Web浏览器不支持运行Java客户端。

如果您确实想在WebSockets上使用STOMP,则必须使用支持WebSockets的STOMP客户端实现(大多数这样做)。

请记住,ActiveMQ是经纪人它不为其支持的所有协议提供客户端。它仅提供JMS客户端,因为实现JMS需要它。例如,STOMP是一种标准化协议,任何人都可以实现一个客户端,该客户端将与实现STOMP的任何代理一起工作。对于许多不同的平台,有许多可用许多不同语言编写的STOMP客户端实现。任何好的搜索引擎都应该帮助您找到一个适合您的需求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

XSockets WSS无法连接

来自分类Dev

无法处理的Java异常

来自分类Dev

Azure表存储引发异常:无法从传输连接读取数据:

来自分类Dev

在 Java 中创建自己的异常

来自分类Dev

无法将类型为java.lang.String的JSON异常值连接转换为JSONArray

来自分类Dev

无法获取JDBC连接;嵌套异常为java.sql.SQLException:null

来自分类Dev

java.sql.SQLException:IO异常:网络适配器无法建立连接?

来自分类Dev

Java:无法修复FileNotFound异常?

来自分类Dev

Java套接字文件传输-文件无法完全传输

来自分类Dev

MessagingException:无法在会话上执行;嵌套异常为java.lang.IllegalStateException:创建SFTP会话失败

来自分类Dev

Android-Studio:错误:无法创建Java虚拟机。发生致命异常

来自分类Dev

Pycharm:获取“错误:无法创建 Java 虚拟机。错误:发生致命异常。程序将退出。”

来自分类Dev

来自 rtm.start 的 wss url 给出了无法创建连接错误

来自分类Dev

无法连接到 Oracle DB 出现错误,如 java.sql.SQLException: Io 异常:网络适配器无法建立连接

来自分类Dev

Android蓝牙:java.io.IOException:传输端点未连接

来自分类Dev

Java(Android)中的IOException:未连接传输终结点

来自分类Dev

HTTP传输错误:java.net.SocketException:连接重置

来自分类Dev

如何使用Java传输客户端连接到ElasticSearch?

来自分类Dev

java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接-Google Cloud Platform

来自分类Dev

Java Derby DB错误“线程“ index-stat-thread”中的异常”和“无法获取JDBC连接”错误

来自分类Dev

由于存在以下异常而无法加载连接类:'java.lang.NumberFormatException:对于输入字符串:“ localhost:3306”'

来自分类Dev

Java Derby DB错误“线程“ index-stat-thread”中的异常”和“无法获取JDBC连接”错误

来自分类Dev

创建数组时出现Java Nullpointer异常

来自分类Dev

从Java创建SQL函数会导致异常

来自分类Dev

Java:如何创建异常哈希表?

来自分类Dev

无法在Android中将WebSocket与WSS连接

来自分类Dev

为什么客户端在连接到ActiveMQ时会抛出java.io.IOException:无法识别传输方案:[failovertcp]错误?

来自分类Dev

可以通过直线连接到 hive,但不能通过 java。错误无法使用 JDBC Uri GSS 启动失败打开客户端传输

来自分类Dev

尝试捕获无法捕获Java(Android)异常

Related 相关文章

  1. 1

    XSockets WSS无法连接

  2. 2

    无法处理的Java异常

  3. 3

    Azure表存储引发异常:无法从传输连接读取数据:

  4. 4

    在 Java 中创建自己的异常

  5. 5

    无法将类型为java.lang.String的JSON异常值连接转换为JSONArray

  6. 6

    无法获取JDBC连接;嵌套异常为java.sql.SQLException:null

  7. 7

    java.sql.SQLException:IO异常:网络适配器无法建立连接?

  8. 8

    Java:无法修复FileNotFound异常?

  9. 9

    Java套接字文件传输-文件无法完全传输

  10. 10

    MessagingException:无法在会话上执行;嵌套异常为java.lang.IllegalStateException:创建SFTP会话失败

  11. 11

    Android-Studio:错误:无法创建Java虚拟机。发生致命异常

  12. 12

    Pycharm:获取“错误:无法创建 Java 虚拟机。错误:发生致命异常。程序将退出。”

  13. 13

    来自 rtm.start 的 wss url 给出了无法创建连接错误

  14. 14

    无法连接到 Oracle DB 出现错误,如 java.sql.SQLException: Io 异常:网络适配器无法建立连接

  15. 15

    Android蓝牙:java.io.IOException:传输端点未连接

  16. 16

    Java(Android)中的IOException:未连接传输终结点

  17. 17

    HTTP传输错误:java.net.SocketException:连接重置

  18. 18

    如何使用Java传输客户端连接到ElasticSearch?

  19. 19

    java.sql.SQLNonTransientConnectionException:无法创建与数据库服务器的连接-Google Cloud Platform

  20. 20

    Java Derby DB错误“线程“ index-stat-thread”中的异常”和“无法获取JDBC连接”错误

  21. 21

    由于存在以下异常而无法加载连接类:'java.lang.NumberFormatException:对于输入字符串:“ localhost:3306”'

  22. 22

    Java Derby DB错误“线程“ index-stat-thread”中的异常”和“无法获取JDBC连接”错误

  23. 23

    创建数组时出现Java Nullpointer异常

  24. 24

    从Java创建SQL函数会导致异常

  25. 25

    Java:如何创建异常哈希表?

  26. 26

    无法在Android中将WebSocket与WSS连接

  27. 27

    为什么客户端在连接到ActiveMQ时会抛出java.io.IOException:无法识别传输方案:[failovertcp]错误?

  28. 28

    可以通过直线连接到 hive,但不能通过 java。错误无法使用 JDBC Uri GSS 启动失败打开客户端传输

  29. 29

    尝试捕获无法捕获Java(Android)异常

热门标签

归档