`
zhangwei_david
  • 浏览: 468353 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring 之 JMS 基于JMS的RPC

    博客分类:
  • JMS
阅读更多

      使用JMS PTP消息和pub/sub可以将两个应用系统集成在一起,在Spring中还提供了基于JMS的RPC方案。Spring 提供的方案有一个缺点就是只能使用点对点消息。

导出基于JMS的服务

JmsInvokerServiceExporter是Spring 提供的基于JMS服务导出的工厂类

 

 <!--  -->
   <bean id="jmsServiceExporter" class="org.springframework.jms.remoting.JmsInvokerServiceExporter">
   	<property name="service" ref="helloService"/>
   	<property name="serviceInterface" value="com.cathy.demo.jms.service.HelloWord"/>
   </bean>
   <bean id="helloService" class="com.cathy.demo.jms.service.HelloWordImpl"/>

 

   <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
   		<property name="connectionFactory" ref="connectionFactory"/>  
        <property name="destination" ref="destination"/>
        <property name="messageListener" ref="jmsServiceExporter"/>  
   </bean>

 

/**
 *
 * @author zhangwei_david
 * @version $Id: HelloWord.java, v 0.1 2015年2月3日 下午9:10:44 zhangwei_david Exp $
 */
public interface HelloWord {

    public void sayHello(String name);
}

 

/**
 *
 * @author zhangwei_david
 * @version $Id: HelloWordImpl.java, v 0.1 2015年2月3日 下午9:11:42 zhangwei_david Exp $
 */
@Component
public class HelloWordImpl implements HelloWord {

    @Autowired
    private Producer producer;

    public void sayHello(String name) {
        Mail mail = new Mail();
        mail.setContent("Hello," + name);
        mail.setTo(name);
        producer.send(mail);
    }

}

 这样我们就可以将JMS导出为一个服务

 

访问基于JMS的服务

 <bean id="myHelloService" class="org.springframework.jms.remoting.JmsInvokerProxyFactoryBean">
   		<property name="connectionFactory" ref="connectionFactory"/>
   		<property name="queue" ref="destination"/>
   		<property name="serviceInterface" value="com.cathy.demo.jms.service.HelloWord"/>
   </bean>

 

    @Test
    public void testSend() throws JMSException, InterruptedException {
        myHelloService.sayHello("Test");
    }

 测试的结果是:

2015-02-03 21:31:52  [ main:860 ] - [ INFO ]  Starting beans in phase 2147483647
JMS invoker proxy for queue [queue://message.queue]
sende->Mail[mailId=<null>,from=<null>,to=Test,content=Hello,Test]

 

 

0
1
分享到:
评论

相关推荐

    spring jar 包详解

    (9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、...

    Spring 实现远程访问详解——rmi

    5. JAX RPC: Spring通过JAX-RPC为远程Web服务提供支持(J2EE 1.4's web service API)。 6. JAX-WS:Spring通过JAX-WS为远程Web服务提供支持(the successor of JAX-RPC, as introduced in Java EE 5 and Java 6)。 7. ...

    Spring 2.5 jar 所有开发包及完整文档及项目开发实例

    'spring-portlet.jar' 被改名为 'spring-webmvc-portlet.jar',表明它是Spring Web MVC framework的子模块之一。 类似的, 'spring-struts.jar' 被改为'spring-webmvc-struts.jar'。 Spring 2.0的'spring-jdo.jar', ...

    最新最全的spring开发包

     这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar  这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...

    Spring中文帮助文档

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...

    Spring API

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...

    Spring 2.0 开发参考手册

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...

    Spring in Action(第2版)中文版

    10.4使用基于消息的rpc 10.4.1引入lingo 10.4.2输出服务 10.4.3代理jms 10.5小结 第11章spring和ejb 11.1在spring中置入ejb 11.1.1代理会话bean(ejb2.x) 11.1.2将ejb置入springbean 11.2开发spring驱动的...

    Spring-Reference_zh_CN(Spring中文参考手册)

    12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...

    Spring in Action(第二版 中文高清版).part2

    10.4 使用基于消息的RPC 10.4.1 引入Lingo 10.4.2 输出服务 10.4.3 代理JMS 10.5 小结 第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean(EJB 2.x) 11.1.2 将EJB置入Spring Bean 11.2 开发...

    Spring in Action(第二版 中文高清版).part1

    10.4 使用基于消息的RPC 10.4.1 引入Lingo 10.4.2 输出服务 10.4.3 代理JMS 10.5 小结 第11章 Spring和EJB 11.1 在Spring中置入EJB 11.1.1 代理会话Bean(EJB 2.x) 11.1.2 将EJB置入Spring Bean 11.2 开发...

    Spring集成ActiveMQ配置

    Spring 集 成ActiveMQ 配置 异步RPC框架 Missian ActiveMq-JMS简单实例使用tomcat

    spring in action英文版

     第1章 开始Spring之旅  1.1 为什么使用Spring  1.1.1 J2EE开发者的一天  1.1.2 Spring的承诺  1.2 Spring是什么  1.3 开始Spring之旅  1.4 理解反向控制  1.4.1 依赖注入  1.4.2 IoC应用...

    spring chm文档

    Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...

    springCloud

    二:服务介绍: 1) 服务的注册与发现 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、...

    Manning.Spring.in.Action.4th.Edition.2014.11.epub

    17.2.2. Using Spring’s JMS template 17.2.3. Creating message-driven POJOs 17.2.4. Using message-based RPC 17.3. Messaging with AMQP 17.3.1. A brief introduction to AMQP 17.3.2. Configuring Spring for...

    spring-framework-3.0.5.RELEASE-dependencies-1

    javax.jms javax.mail javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws ...

    spring-framework-3.0.5.RELEASE-dependencies-6

    javax.jms javax.mail javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws ...

    spring-framework-3.0.5.RELEASE-dependencies-7

    javax.jms javax.mail javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws ...

    spring-framework-3.0.5.RELEASE-dependencies-5

    javax.jms javax.mail javax.persistence javax.portlet javax.resource javax.servlet javax.transaction javax.validation javax.xml.bind javax.xml.rpc javax.xml.soap javax.xml.stream javax.xml.ws ...

Global site tag (gtag.js) - Google Analytics