使用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]
相关推荐
标题与描述中提到的主题是“基于Spring的远程访问与Web Service”,这涉及到Spring框架在企业级应用中的关键特性——即其支持多种远程服务调用的方式,包括但不限于RMI、HTTP Invoker、Hessian、Burlap、JAX-RPC以及...
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. ...
3. **Java**:在后端,Java通过Spring或其它框架处理业务逻辑,并与JMS服务器进行交互。Java应用通过JMS API创建消息生产者和消费者,发送和接收消息。 4. **JMS**:JMS是Java消息服务,它定义了一个API,让应用...
- **功能简介**:包含了支持 EJB、JMS、远程调用 Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 - **应用场景**:适用于需要实现远程调用功能的项目。 - **依赖关系**:依赖于 `spring-core....
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的核心特性包括依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP),它还支持数据库事务管理、JMS、JMX等功能,并且可以与其他Java EE技术如JPA、JSF等无缝集成。...
'spring-portlet.jar' 被改名为 'spring-webmvc-portlet.jar',表明它是Spring Web MVC framework的子模块之一。 类似的, 'spring-struts.jar' 被改为'spring-webmvc-struts.jar'。 Spring 2.0的'spring-jdo.jar', ...
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. 在应用服务器...
这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java ...
6. **Missian ActiveMQ-JMS简单实例**:这可能是一个具体的项目实例,它展示了如何在Spring应用中使用ActiveMQ实现异步RPC(远程过程调用)。在这种模式下,一个服务通过消息将请求发送到队列,另一端的服务监听队列...
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. 在应用...
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. 在应用...
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. 在应用...
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 Boot常作为服务的起点,开发者可以快速创建独立的、生产级别的基于Spring的应用。面试时可能会涉及Spring Boot的自动配置、起步依赖、Actuator监控以及如何与外部配置中心集成等内容。 再者...
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协议的特点在于其二进制格式,相比XML-RPC或SOAP等基于文本的协议,传输的数据更小,速度更快。 其次,Spring是一个广泛应用的开源框架,提供了一个全面的编程和配置模型,简化了企业级应用的开发。Spring...
二:服务介绍: 1) 服务的注册与发现 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、...
- 提供了对 EJB、JMS 以及远程调用(如 RMI、Hessian、Burlap、HttpInvoker、JAX-RPC)相关的类。 10. **spring-support.jar** - 该组件提供了对 Cache(如 ehcache)、JCA、JMX、邮件服务(如 JavaMail、COS ...