- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过 azure 服务总线使用 amqp 将简单的字符串消息从 .NET 发送到 Java 客户端。根据documentation我应该能够发送这样的代理消息:
message = new BrokeredMessage("this is a text string");
并将其作为 TextMessage (javax.jms.TextMessage) 显示在 Java 客户端中。但是,当我尝试将 Java 中的消息转换为 TextMessage 时,出现异常,指出它无法将 jms.impl.BytesMessageImpl 转换为 TextMessage。有人知道为什么该消息看起来像 BytesMessage 而不是 TextMessage 吗?
根据docs BytesMessage 将像这样构建:
byte[] bytes = { 33, 12, 45, 33, 12, 45, 33, 12, 45, 33, 12, 45 };
message = new BrokeredMessage(bytes);
我没有这样做......
有人知道如何做这样的事情吗?
[更新]有趣的是,我测试了连接字符串中是否包含 TransportType=Amqp 指定的发送代码。我还在运行时验证了代码,MessagingFactory 设置每次也设置为正确的传输类型。无论我使用哪种传输类型,消息都会以 BytesMessage 形式到达我的 Java 应用程序。无论消息如何发送,查看消息中的字节都会显示相同的结果:
@ string 3http://schemas.microsoft.com/2003/10/Serialization/�&BLABLA this is a message
[更新2]我找出了问题的根本原因。在我的设置中,我有一个订阅者将消息转发到队列。看来这就是消息变得困惑的地方。如果我直接向队列发送 AMQP 消息,它将作为 TextMessage 到达我的 Java 应用程序。如果我通过 AMQP 将消息发送到我的主题,然后它通过订阅者(带有过滤器)转发到我的队列,它就会被破坏成 BytesMessage。
那么我该如何让它正常工作呢?有没有办法设置我的订阅者转发到队列,这样就可以了?
最佳答案
当前使用转发规则时,服务总线 AMQP 互操作性存在限制。在转发过程中,消息被错误地使用数据契约序列化器重新序列化。我们将解决这个问题,完成后我会在这里报告。同时,一个可能的解决方法是使用消息属性来存储应用程序数据而不是正文。也就是说,使用消息上的字符串属性来存储显着信息,而不是使用正文。
最诚挚的问候,
戴夫。
服务总线团队
关于java - 如何从 .NET 通过 Azure Servicebus 发送 javax.jms.TextMessage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18552859/
正如我们所知,多数组如 int array1[3][2] = {{0, 1}, {2, 3}, {4, 5}};是连续的,所以它与 int array2[6] = { 0, 1, 2, 3, 4, 5
构造 TextMessage 的最佳方法是什么?来自单元测试中的字符串? 我只看到Session#createTextMessage(String) ,但这需要一个需要进行一些设置的 session
我使用 QueueBrowser 获取并循环访问 JMS 队列上的消息枚举。当我尝试将 msgs.nextElement() 转换为 TextMessage 时,IntelliJ IDEA 告诉我:
在我看来就像 JMS TextMessage包含 Java.lang.String 不会将 \r\n 识别为换行符,而是将 CR LF 视为 Windows 计算机上输入的一部分。 @Override
将我的应用程序从 OC4J 迁移到 WebLogic 10.3.6 服务器后,我遇到了一个奇怪的问题。 我的应用程序将 JMS TextMessage 生成到 OracleAQ 队列中。它工作正常。但
我正在 TextMessage 上设置 Long 属性 msg.setLongProperty("publishSequence", pubSeq); ,并将其发送到本地 IBM WebSphere
我正在构建一些 MQ 队列连接,我需要将消息队列从 queueReceiver.Receivenowait() 转换为 JMS Textmessage。 因为 queueReceiver.Receiv
我有一个在队列上设置监听器的 Java 应用程序,onMessage(Message) 获取 javax.jms.TextMessage 的子类,我该如何制作它获取javax.jms.BytesMes
调用 MessageProducer.setTimeToLive() 与调用 TextMessage.setJMSExpiration() 有区别吗? 我可以从文档中看到 javax.jms.Mess
本文整理了Java中org.springframework.web.reactive.socket.WebSocketSession.textMessage()方法的一些代码示例,展示了WebSock
我正在使用 Spring JMS @JmsListener 注释收听 MQ Q。 @JmsListener(destination = "${qNmae}",
Oracle 文档说 - A TextMessage object is used to send a message containing a java.lang.String. It inheri
我的应用程序在 Tomcat 下运行,多个 Spring 的 DefaultMessageListenerContainer 监听在 Oracle 11g Weblogic 服务器下运行的多个不同的
当我使用 PHP-Stomp 向 ActiveMQ 发送消息时消息作为 BytesMessage 发送。但是我想发送一条 TextMessage。 根据STOMP documentation这可以通过
我在版本 5 或更高版本的 iOS 应用程序上使用 ShareKit 2。我已将应用配置为正确使用 Facebook,当操作表被激活时,这是唯一出现的选项。我想使用内置的 Twitter 共享系统,但
我正在尝试通过 azure 服务总线使用 amqp 将简单的字符串消息从 .NET 发送到 Java 客户端。根据documentation我应该能够发送这样的代理消息: message = new
我正在从 Java 代码向 Websphere MQ Server 发送消息,当我在 MQ 服务器上读取相同的消息时,它显示为: message 下面是将消息发送到MQ服务器的代码: private
我的 Spring Boot 应用程序在从 ActiveMQ 代理检索 TextMessage 类型的 JMS 消息时遇到问题。 如果消费者尝试从代理检索消息,它无法自动将消息转换为 TextMess
我在网上发现了一些非常矛盾的信息,我认为每个不同的 JMS 提供者也可能会改变答案。 我试图了解在将 XML 发送到 JMS 系统(例如 ActiveMQ)时我是否应该使用 BytesMessage
我需要连接到不同数据库中的两个 Oracle AQ 队列。当然,除了连接字符串之外,我在这两种情况下都使用完全相同的代码。其中一个队列工作正常,但第二个队列不行。 String db_string =
我是一名优秀的程序员,十分优秀!