`
zhangwei_david
  • 浏览: 475977 次
  • 性别: 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的远程访问与Web Service

    标题与描述中提到的主题是“基于Spring的远程访问与Web Service”,这涉及到Spring框架在企业级应用中的关键特性——即其支持多种远程服务调用的方式,包括但不限于RMI、HTTP Invoker、Hessian、Burlap、JAX-RPC以及...

    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. ...

    Flex + BlazeDS + Java + JMS 通信实例(附源码)

    3. **Java**:在后端,Java通过Spring或其它框架处理业务逻辑,并与JMS服务器进行交互。Java应用通过JMS API创建消息生产者和消费者,发送和接收消息。 4. **JMS**:JMS是Java消息服务,它定义了一个API,让应用...

    spring jar 包详解

    - **功能简介**:包含了支持 EJB、JMS、远程调用 Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 - **应用场景**:适用于需要实现远程调用功能的项目。 - **依赖关系**:依赖于 `spring-core....

    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+hessian框架的webservice实例

    Spring的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),它还支持数据库事务管理、JMS、JMX等功能,并且可以与其他Java EE技术如JPA、JSF等无缝集成。...

    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-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开发包

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

    Spring集成ActiveMQ配置

    6. **Missian ActiveMQ-JMS简单实例**:这可能是一个具体的项目实例,它展示了如何在Spring应用中使用ActiveMQ实现异步RPC(远程过程调用)。在这种模式下,一个服务通过消息将请求发送到队列,另一端的服务监听队列...

    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驱动的...

    微服务架构面试题系列:Dubbo+Spring Boot+Spring Cloud.zip

    在微服务架构中,Spring Boot常作为服务的起点,开发者可以快速创建独立的、生产级别的基于Spring的应用。面试时可能会涉及Spring Boot的自动配置、起步依赖、Actuator监控以及如何与外部配置中心集成等内容。 再者...

    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 开发...

    Hessian和Spring集成示例

    Hessian协议的特点在于其二进制格式,相比XML-RPC或SOAP等基于文本的协议,传输的数据更小,速度更快。 其次,Spring是一个广泛应用的开源框架,提供了一个全面的编程和配置模型,简化了企业级应用的开发。Spring...

    springCloud

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

    Spring包结构以及各个包之间引用关系说明.doc

    - 提供了对 EJB、JMS 以及远程调用(如 RMI、Hessian、Burlap、HttpInvoker、JAX-RPC)相关的类。 10. **spring-support.jar** - 该组件提供了对 Cache(如 ehcache)、JCA、JMX、邮件服务(如 JavaMail、COS ...

Global site tag (gtag.js) - Google Analytics