- 浏览: 178153 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (101)
- DataBase (8)
- Java (37)
- Software (14)
- JavaScript (8)
- XML (4)
- WebService (5)
- SharePoint (6)
- ESB (4)
- Algorithm&Data Structure (5)
- CloudFoundry (1)
- liferay (1)
- portal (1)
- System Analysis (1)
- Storm (2)
- linux (3)
- Server (1)
- elasticsearch (1)
- angular (1)
- spark (1)
- python (2)
- ELK (1)
- Resin (1)
- Flink (1)
- python AI (1)
最新评论
-
yuekinger:
若果 64bit 下正常 32位系统下不正常运行的 排除dll ...
Java 调用 C# DLL -
yuekinger:
Win764 系统下成功! 实现 java 调用 c++ 链接 ...
Java 调用 C# DLL -
sdasds:
sdasds 写道pp1314 写道x931100537 写道 ...
Java 调用 C# DLL -
sdasds:
pp1314 写道x931100537 写道Exception ...
Java 调用 C# DLL -
pp1314:
x931100537 写道Exception in threa ...
Java 调用 C# DLL
问题4:Networks of Brokers
在每个activemq server的配置文件activemq.xml里加入如下内容,每个activemq server都需要设置内容相类型的multicase,如果activemq的连接设置了安全权限,则需要在networkConnector元素中加入userName password内容。
问题3:使用http协议
activeMQ的运行版本是4.0,调用activeMQ的jar包进行收发消息时,需要将activeMQ server目录里的commons-httpclient-2.0.1.jar、xstream-1.1.2.jar、xmlpull-1.1.3.4d_b4_min.jar拷贝到activeMQ jar使用者的classpath环境里。
问题2:Java与C#通过ActiveMQ进行消息交互
情景1:Java发送消息,C#接收消息; 情景2:C#发送消息,Java接收消息。
写C#的AMQ客户端时,需要引用到Apache.NMS-1.1.0-bin和Apache.NMS.ActiveMQ-1.1.0-bin这两个文件包中的dll文件(下载地址:http://archive.apache.org/dist/activemq/apache-nms/1.1.0/);将Apache.NMS.ActiveMQ-1.1.0-bin中的nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中,使客户端可以找到AMQ这两个相关的配置信息文件。
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本是v2,该版本在incubator-activemq-4.0不存在,无法与他进行消息交互;在apache-activemq-4.1.2中存在,可以进行消息交互。
出现过的问题:
1)No IConnectionFactory implementation found for connection URI
未将nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中。
2)java.lang.IllegalArgumentException: Invalid version: 6, could not load org.apache.activemq.openwire.v6.MarshallerFactory
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本与incubator-activemq-4.0中的该类的v*包版本不一致。
C#的AMQ客户端代码,参见附件:AMQ Client For C sharp.zip
问题1:topic receive: The subscription does not exist (activemq 4.0)
问题原因:同一个consumer的selector发生了变化,参见下面方法中的第84行至第95行。
org.apache.activemq.broker.region.TopicRegion.addConsumer(ConnectionContext context, ConsumerInfo info)
解决方案:在 AbstractRegion.removeConsumer 方法中增加null保护处理。
void org.apache.activemq.broker.region.AbstractRegion.removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception
topic subscriber的不同selector会影响到TopicViewMBean.getConsumerCount()的计数个数,具有不同selector的topic subscriber被认为是不同的consumer
原始错误信息(来自于activemq的输出信息):
在每个activemq server的配置文件activemq.xml里加入如下内容,每个activemq server都需要设置内容相类型的multicase,如果activemq的连接设置了安全权限,则需要在networkConnector元素中加入userName password内容。
<transportConnectors> <transportConnector name="openfire" uri="tcp://localhost:61617" discoveryUri="multicast://openfire"/> </transportConnectors> <networkConnectors> <!-- by default just auto discover the other brokers --> <networkConnector name="openfire" uri="multicast://openfire" userName="publisher" password="password" /> </networkConnectors>
问题3:使用http协议
activeMQ的运行版本是4.0,调用activeMQ的jar包进行收发消息时,需要将activeMQ server目录里的commons-httpclient-2.0.1.jar、xstream-1.1.2.jar、xmlpull-1.1.3.4d_b4_min.jar拷贝到activeMQ jar使用者的classpath环境里。
问题2:Java与C#通过ActiveMQ进行消息交互
情景1:Java发送消息,C#接收消息; 情景2:C#发送消息,Java接收消息。
写C#的AMQ客户端时,需要引用到Apache.NMS-1.1.0-bin和Apache.NMS.ActiveMQ-1.1.0-bin这两个文件包中的dll文件(下载地址:http://archive.apache.org/dist/activemq/apache-nms/1.1.0/);将Apache.NMS.ActiveMQ-1.1.0-bin中的nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中,使客户端可以找到AMQ这两个相关的配置信息文件。
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本是v2,该版本在incubator-activemq-4.0不存在,无法与他进行消息交互;在apache-activemq-4.1.2中存在,可以进行消息交互。
出现过的问题:
1)No IConnectionFactory implementation found for connection URI
未将nmsprovider-activemq.config和nmsprovider-tcp.config这两个配置文件放入C#的AMQ客户端可执行路径中。
2)java.lang.IllegalArgumentException: Invalid version: 6, could not load org.apache.activemq.openwire.v6.MarshallerFactory
Apache.NMS-1.1.0要求的org.apache.activemq.openwire.v*.MarshallerFactory版本与incubator-activemq-4.0中的该类的v*包版本不一致。
C#的AMQ客户端代码,参见附件:AMQ Client For C sharp.zip
问题1:topic receive: The subscription does not exist (activemq 4.0)
问题原因:同一个consumer的selector发生了变化,参见下面方法中的第84行至第95行。
org.apache.activemq.broker.region.TopicRegion.addConsumer(ConnectionContext context, ConsumerInfo info)
解决方案:在 AbstractRegion.removeConsumer 方法中增加null保护处理。
void org.apache.activemq.broker.region.AbstractRegion.removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception
public void removeConsumer(ConnectionContext context, ConsumerInfo info) throws Exception { Subscription sub = (Subscription) subscriptions.remove(info.getConsumerId()); // if( sub==null ) // throw new IllegalArgumentException("The subscription does not exist: "+info.getConsumerId()); if (sub != null) { // remove the subscription from all the matching queues. for (Iterator iter = destinationMap.get(info.getDestination()).iterator(); iter.hasNext();) { Destination dest = (Destination) iter.next(); dest.removeSubscription(context, sub); } destroySubscription(sub); } }
topic subscriber的不同selector会影响到TopicViewMBean.getConsumerCount()的计数个数,具有不同selector的topic subscriber被认为是不同的consumer
原始错误信息(来自于activemq的输出信息):
INFO Service - Sync error occurred: java.lang.IllegalArg umentException: The subscription does not exist: OFFLINE:1:2 java.lang.IllegalArgumentException: The subscription does not exist: OFFLINE:1:2 at org.apache.activemq.broker.region.AbstractRegion.removeConsumer(AbstractRegion.java:202) at org.apache.activemq.broker.region.TopicRegion.addConsumer(TopicRegion.java:92) at org.apache.activemq.broker.region.RegionBroker.addConsumer(RegionBroker.java:296) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.advisory.AdvisoryBroker.addConsumer(AdvisoryBroker.java:77) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) at org.apache.activemq.broker.BrokerFilter.addConsumer(BrokerFilter.java:73) ......
- AMQ_Client_For_C_sharp.zip (847.1 KB)
- 下载次数: 138
发表评论
-
实时推送
2018-12-20 15:47 732初探和实现websocket心跳重连 http://www ... -
Resin 维护
2018-06-13 09:42 599<!--[if gte mso 9]>< ... -
自动化测试
2016-12-13 17:16 6021、linux下 执行JMeter测试脚本 在机器的 ... -
Spark 记录
2016-07-15 09:47 6881、java.lang.StackOverflowError ... -
Java 日常操作
2016-03-15 09:57 589Eclipse 闪退 1、增加内存设置 -vmargs ... -
maven技术分享(一) 标准maven项目的搭建
2014-08-27 14:19 0其中的nexus 的maven 私服搭建,参考网上的资料。 ... -
Java 调用 C# DLL
2014-04-11 16:57 15662Java无法直接调用C# dll,需要通过经过桥接的方式, ... -
Apache 负载均衡的环境搭建 (使用Tomcat作为web server)
2012-03-02 17:21 2843前言 使用tomcat作为web server,搭建Apach ... -
知识归纳索引
2012-02-23 09:57 1128本片文章记录了读过的书籍和文章,并将原始资料作为附件上传。 ... -
acegi 开发笔记
2011-12-26 17:36 7996. 编译acegi-security-1.0.7-s ... -
Mule 开发问题记录
2011-11-30 16:54 17031. A Mule runtime distribution ... -
Log4j 学习笔记
2011-09-14 12:00 916为了彻底掌握log4j的使用,有必要去了解log4j的实现结构 ... -
ESB 研究
2011-08-24 15:08 1267Introduction to ESB 一些ESB的名词 E ... -
struts 开发笔记
2011-08-24 10:44 13251,struts默认根据http request请求流中的键值 ... -
JMS,ActiveMQ 内部实现的研究
2011-08-23 10:28 10674问题1,AMQ 4的openWireFormat与AMQ 5的 ... -
Java 学习笔记:1,类引导,反射机制下的对象创建
2011-08-22 17:39 9151, 类引导,反射机制下的对象创建 类引导最终会字节流传给na ... -
设计模式
2011-08-04 11:38 10091, 设计模式在JDK中的体现 参见stackoverflow ... -
ActiveMQ 开发
2011-07-29 13:28 26541, 配置activemq.xml时,修改<broker ... -
Java 中的 中文编码
2011-05-26 13:56 53431. java.net.URLEncoder.encode j ... -
Spring + Hibernate 例子(使用petclinic, 利用ant)
2011-03-03 16:30 1005Spring + Hibernate 例子 1. 使用Spr ...
相关推荐
KahaDB他是默认的持久化策略,所有消息都会顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。是一个专门针对消息持久化的解决方案,它对典型的消息...
Spring + Apache Camel问题解决方案 目前,有必要实施: 该应用程序使用Apache Camel从文件夹中读取文件。 ++ 根据文件类型执行某些操作: 如果文件具有txt扩展名->将文件发送到txtQueue嵌入式ActiveMQ代理; ++ ...
Docker沙盒(Master) 要运行,您需要一台安装了Docker... 在终端中输入: sudo sugit clone https://github.com/rodboza/docker_sandbox.gitgit checkout mastercd docker_sandbox./main.sh架构设计:变更记录...
Java 6 RowSet 使用完全剖析 结合Spring2.0和ActiveMQ进行异步消息调用 struts+hibernate增删改查(一) AXIS 布署问题 struts+hibernate增删改查(二) MySQL中如何实现Top N及M至N段的记录查询?...
ActiveMQ队列:提供ActiveMQ队列,处理批量发送大数据量邮件、大数据量日志文件。 工作流:功能包括在线办公、我的任务、审批测试、流程管理、模型管理。 CMS:功能包括内容管理、内容管理、统计分析、栏目设置、首页...
ActiveMQ队列:提供ActiveMQ队列,处理批量发送大数据量邮件、大数据量日志文件。 工作流:功能包括在线办公、我的任务、审批测试、流程管理、模型管理。 CMS:功能包括内容管理、内容管理、统计分析、栏目设置、首页...
解决问题能力 经历 技术攻关案例 程序开发案例 程序设计案例 设计 设计原则 单一职责原则 开闭原则 里氏替换原则 依赖倒转原则 接口隔离原则 迪米特原则 设计模式 结构模式 适配器模式 桥接模式 ...
记录行为消息---(技术实现)-->分布式MQ(阿里RocketMQ,Apache ActiveMQ,LinkIn Kafka) | | 消费消息并落地实现--(实现)-->Mysql 成本分析: 运维成本:稳定性,NoSQL ,MQ 开发成本:数据一致性,回滚方案 幂等性...
ActiveMQ队列:提供ActiveMQ队列,处理批量发送大数据量邮件、大数据量日志文件。工作流:功能包括在线办公、我的任务、审批测试、流程管理、模型管理。CMS:功能包括内容管理、内容管理、统计分析、栏目设置、首页。...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine ...activemq...