`

jms 学习笔记3

 
阅读更多

Lingo 是一个Spring的子项目,是一种基于Spring的远程调用方式,可以将Bean的功能输出成Login服务,然后通过代理的方式转入到本地客户使 用.Lingo是RPC和异步消息通信之间的一种互补,Login远程调用可以采用JMS的队列和主题来承载信息,这样就可以保证即使在消息的接收都不可 能用的情况,调用会保存在队列或主题中,当接收方可用时,仍然可以接收到消息,Lingo做为

Spring的一个子项目存在!  下面是一个简单的例子

在工程中导入 lingo.jar 和 jsde_concurrent-9.0.jar 两个jar包.

spring文件中如何配置  Lingo将Bean输出成Login服务,该服务是基于JMS消息目标的

 

<!-- 输出服务 -->
    <bean id="server" class="org.logicblaze.lingo.jms.JmsServiceExporter">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="destination" ref="kesnQDestination"/>
        <property name="service" ref="markingPojoMdp"/>     //Bean
        <property name="serviceInterface" value="com.kesn.jms.pojomdp.MarkingService"/>   //服务要实现的接口
    </bean>

 

通过代理工厂的方式创建服务代理对象
    <!-- 代理工厂 产生使用Lingo输出服务的代理对象-->
    <bean id="marking" class="org.logicblaze.lingo.jms.JmsProxyFactoryBean">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="destination" ref="kesnQDestination"/>
        <property name="serviceInterface" value="com.kesn.jms.pojomdp.MarkingService"/>  //代理实现的接口
    </bean>

将服务代理对象注入到本地业务对象中
    <bean id="markingService" class="com.kesn.jms.pojomdp.MarkingMdp">
        <property name="markingService" ref="marking"/>
    </bean>

 

本地业务的接口和实现类

package com.kesn.jms.pojomdp;

import com.kesn.jms.entity.Motorist;

public interface MarkingService {
    public void handleMessage(Motorist m);
   
    public void addMotorist(Motorist m);
}

 

package com.kesn.jms.pojomdp;

import org.apache.log4j.Logger;
import com.kesn.jms.entity.Motorist;
public class MarkingMdp implements MarkingService{
    private Logger log=Logger.getLogger(MarkingMdp.class);
    private MarkingService markingService;
   

//    public void handleMessage(Map map) {
//        Motorist m=new Motorist();
//        m.setName(map.get("name").toString());
//        m.setEmail(map.get("email").toString());
//        m.setAge(map.get("age").toString());
//        log.info("name:"+m.getName());
//    }
   
    public void setMarkingService(MarkingService markingService) {
        this.markingService = markingService;
    }


    public void handleMessage(Motorist m) {
        log.info("name:"+m.getName());
    }


    @Override
    public void addMotorist(Motorist m) {
        markingService.handleMessage(m);
    }
}

 

测试类

package com.kesn.jms.client;

import org.apache.log4j.Logger;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.kesn.jms.entity.Motorist;
import com.kesn.jms.pojomdp.MarkingService;

public class LingoClient {
    private static Logger log=Logger.getLogger(LingoClient.class);
    public static void main(String[] args) {
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        MarkingService ms=(MarkingService)context.getBean("markingService");
        Motorist m=new Motorist();
        m.setName("李乐平1");
        m.setEmail("lilpjob");
        m.setAge("1");
        ms.addMotorist(m);
    }
}

 

测试过程中,调用添加Matorist 对象后,可以调用服务代理的方法,调用Handmessage() 方法是基于JMS的调用方式,真实的应用场景中,两个方法是分布在不同的进程中的!

 

Lingo的RPC调用的方式不同之处在Lingo的调用可以是异步的,如果通过Lingo调用的远程方法没有返回值,系统就可以做其它事情,不必等待;  RPC是同的远程的调用方式

分享到:
评论

相关推荐

    JMS学习笔记精心总结

    **JMS学习笔记精心总结** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的一种标准接口。它允许应用程序创建、发送、接收和读取消息,使得应用程序能够在不直接连接的情况下...

    JMS学习笔记(一)——JMS简介安装ActiveMQ

    **JMS学习笔记(一)——JMS简介与ActiveMQ安装** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它为应用程序提供了一种标准的方式,用来创建、发送、接收和读取...

    jms学习笔记jms学习笔记

    本文主要探讨的是消息中间件(Message-Oriented Middleware,简称MOM),特别是在Java消息服务(Java Message Service,JMS)的学习笔记。 JMS是Java平台上的一个标准API,用于在分布式环境中进行异步消息传递。它...

    JMS学习笔记

    **JMS学习笔记** Java消息服务(Java Message Service,简称JMS)是Java平台中用于在分布式环境中交换异步消息的标准API。它提供了一种可靠的消息传递机制,使得应用程序可以在不互相依赖的情况下进行通信,从而...

    JMS相关,教程,例子,学习笔记

    通过阅读**jms学习笔记.docx** 和 **JMS例子.docx**,你可以深入理解JMS的使用方式,获取实践经验。而 **JMS教程.pdf** 和 **基于XML和JMS的异构数据交换集成的研究.pdf** 则提供了理论基础和高级应用场景的讲解,有...

    ActiveMQ学习笔记(二) JMS与Spring

    在本篇ActiveMQ学习笔记中,我们将探讨JMS(Java Message Service)与Spring框架的集成。JMS是一种标准API,用于在分布式环境中进行异步消息传递,而Spring框架则为开发人员提供了强大的依赖注入和管理服务的能力。...

    RocketMQ学习笔记 1

    RocketMQ学习笔记 1是关于Apache RocketMQ的学习笔记,涵盖了RocketMQ的基本概念、架构、消息模型、Producer和Consumer的基本概念、JMS规范等知识点。 1. 消息模型 在RocketMQ中,消息模型是指消息的生产、存储和...

    JAVA学习笔记————————

    3. **异常处理**:JAVA提供了一种结构化的异常处理机制,学习笔记会解释何时及如何使用try-catch-finally语句块,以及不同类型的异常类。 4. **内存管理与垃圾回收**:JAVA的自动内存管理是通过垃圾回收机制实现的...

    active mq 学习笔记

    ### ActiveMQ学习笔记知识点梳理 #### 一、ActiveMQ简介 **定义:** - **ActiveMQ**是由Apache出品的一款功能强大的开源消息中间件。作为消息队列(Message Queue,简称MQ)的一种,它主要用来在分布式系统之间...

    JBPM3学习笔记

    **JBPM3学习笔记** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了对业务流程的建模、部署、执行和监控的能力。在本文中,我们将深入探讨JBPM3的核心概念、功能和使用方法,以帮助...

    javaEE学习笔记

    本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...

    JavaEE学习笔记

    ### JavaEE 学习笔记概览 #### 一、JavaEE 概念及发展历程 JavaEE(Java Platform, Enterprise Edition)是Sun Microsystems公司为简化企业级应用开发而提出的一套标准化平台,它提供了构建分布式系统的基本框架和...

    软件工程师学习笔记J2EE

    《软件工程师学习笔记J2EE》是一份针对Java企业级应用开发(J2EE)的详尽学习资源,对于想要深入理解和掌握J2EE技术体系的软件工程师来说,具有极高的参考价值。这份笔记不仅全面覆盖了J2EE的基础概念,还深入探讨了...

    Java-J2EE全部学习笔记 培训结构的学习资料

    这份"Java-J2EE全部学习笔记 培训结构的学习资料"涵盖了从基础到高级的Java编程和J2EE应用开发的知识点,对于想要深入理解Java EE技术的人来说是一份宝贵的资源。 1. **Java基础知识**:这部分可能包括Java语言的...

    J2EE学习笔记 对学习非常有帮助

    **J2EE学习笔记概述** J2EE(Java 2 Platform, Enterprise Edition)是Java平台的一个版本,专门针对企业级应用开发。它提供了一个全面的框架来构建、部署和管理多层、分布式、跨平台的企业应用程序。J2EE学习笔记...

Global site tag (gtag.js) - Google Analytics