我们可以使用非java来使用JMS消息吗

我们可以使用非java来使用JMS消息吗,java,jms,Java,Jms,我知道javajmsapi提供了异步生成和使用消息的支持 例如,我将使用java实现JMS生产者,并将消息发送到JBOSS消息(目的地) 假设外部应用程序说.net应用程序在分布式环境中希望通过连接到JBOSS消息(目的地) 有可能吗?目前正在读一本关于它的书 您需要一个可以通过.Net服务访问的JMS服务器(可以直接访问,也可以将JMS配置为向.Net MOM*发送消息) 在任何情况下,它都不是JMS的一部分,而是特定产品的一种功能。JMS的开发目的是“足够通用”以在这种场景中工作,但它取决于

我知道
javajmsapi
提供了异步生成和使用消息的支持

例如,我将使用java实现
JMS
生产者,并将消息发送到
JBOSS消息(目的地)

假设外部应用程序说
.net
应用程序在分布式环境中希望通过连接到
JBOSS消息(目的地)


有可能吗?

目前正在读一本关于它的书

您需要一个可以通过.Net服务访问的JMS服务器(可以直接访问,也可以将JMS配置为向.Net MOM*发送消息)

在任何情况下,它都不是JMS的一部分,而是特定产品的一种功能。JMS的开发目的是“足够通用”以在这种场景中工作,但它取决于特定的服务器实现(和配置)来支持(或不支持)

  • MOM:面向消息的中间件

在技术层面上,协议上的任何消息都可以被读取,而不管消息是什么,因为它在某一点上都转换为0和1。但是,因为JMS是java接口,所以从技术上讲,即使您以这种方式读取消息,您也不会使用JMS-JMS是通过使用java JMS接口和扩展这些接口的类来读取这些消息的java方式

有几种JMS消息类型:

  • BytesMessage:任何人都可以阅读
  • 短信:同上
  • StreamMessage:任何可以读取网络有序基元类型的人都可以读取
  • ObjectMessage:这些是序列化对象,只能由Java读取
  • MapMessage:这些基本上是地图;同上
JMS本身不是消息代理,只是现有代理的API


如果您的Java代码和非Java代码可以在基于字节或文本的消息格式上达成一致,则可以在它们之间交换消息。

JMS仅定义应用程序可用于发送和接收消息的API。它没有定义导线格式。因此,这取决于您使用的消息传递系统。JBoss使用(因为JBoss6,IIRC),HornetQ支持其他有线格式,即和。它还允许使用REST发送和接收消息


但是,由于互操作性经常出现,您必须限制自己才能使其实际工作。您不能交换所有的消息正文(as),可能也不能交换所有的消息头和属性。

谢谢@SJuan76,您的意思是它依赖于JMS提供程序,该提供程序对JAVA和.NET都足够兼容,可以从JMS服务器发送和接收消息?目前是否有支持JMS的服务器?WebSphere MQ具有JMS规范的Java和.NET(称为XMS.NET)实现。