转自:http://up2pu.iteye.com/blog/988871
Spring版本2.5.6.SEC01
1.服务端:
需要如下jar包:spring.jar spring-webmvc.jar
IPersonService.java
- public interface IPersonService {
- public String queryPersonName();
- }
PersonServiceImpl.java
- public class PersonServiceImpl implements IPersonService {
- public String queryPersonName() {
- return "test";
- }
- }
service-config.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
- <beans>
- <bean id="personService"
- class="com.travelsky.angel.service.impl.PersonServiceImpl" />
- <bean id="serviceExporter"
- class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
- <property name="service" ref="personService" />
- <property name="serviceInterface"
- value="com.travelsky.angel.service.IPersonService" />
- </bean>
- <bean id="urlMapping"
- class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
- <property name="mappings">
- <props>
- <prop key="/person.service">serviceExporter</prop>
- </props>
- </property>
- </bean>
- </beans>
web.xml添加如下代码
- <servlet>
- <servlet-name>dispatcherServlet</servlet-name>
- <servlet-class>
- org.springframework.web.servlet.DispatcherServlet
- </servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/service-config.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>dispatcherServlet</servlet-name>
- <url-pattern>*.service</url-pattern>
- </servlet-mapping>
2.客户端:
客户端需要应用服务端的bean和接口,另外需要spring.jar
HttpInvokerClient.java
- public class HttpInvokerClient {
- public static void main(String[] args) {
- ApplicationContext context = new ClassPathXmlApplicationContext("httpinvoker-client.xml");
- IPersonService service = (IPersonService) context.getBean("personServiceProxy");
- String result = service.queryPerson();
- System.out.println(result);
- }
- }
httpinvoker-client.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
- <beans>
- <bean id="personServiceProxy"
- class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
- <property name="serviceUrl"
- value="http://127.0.0.1:8080/ProjectContextRoot/person.service" />
- <property name="serviceInterface"
- value="com.travelsky.angel.service.IPersonService" />
- </bean>
- </beans>
注意:ProjectContextRoot对应.mymetadata中的context-root,如果修改,需要重新启动Eclipse
分享到:
相关推荐
org.springframework.remoting.httpinvoker最基本的实现例子,这是3个eclipse的JavaEE工程,全部导入即可,能运行。 初学可以轻松了解Spring HttpInvoker 的结构和使用。
HttpInvoker是Spring框架的一部分,它提供了一种基于HTTP协议的远程调用机制,使得不同网络环境中的Java应用之间能够进行安全、高效的通信。本篇文章将深入探讨Spring HttpInvoker的原理以及如何对其进行封装,以便...
Spring HttpInvoker,是一套基于Maven+Spring+SpringMVC+MyBatis框架,还包含了Invoker的客户端及服务器端的demo实例
在分布式系统中,远程服务调用是常见的需求,Spring框架提供了多种远程服务支持,其中包括HttpInvoker。HttpInvoker是Spring框架的一部分,它允许开发者使用HTTP协议进行远程方法调用,而不需要额外的类库。与...
<bean id="serviceExporter" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> ``` 这里,`ServiceImpl`是你实现`ServiceInterface`的具体类,`HttpInvokerServiceExporter`将...
在这个实例中,包含了服务端和服务端两个工程,分别模拟了HTTPInvoker的工作流程。 在服务端,你需要配置一个`HttpInvokerServiceExporter`,这个组件将你的业务接口暴露为HTTP服务。首先,定义一个服务接口,比如`...
在本实例中,我们关注的是HTTP Invoker,这是一种基于HTTP的轻量级远程调用解决方案。HTTP Invoker不需要额外的二进制协议支持,而是利用Java序列化机制,将方法调用和参数以HTTP请求的形式发送到远程服务器,然后...
`Http Invoker`是Spring框架提供的一种基于HTTP协议的RPC实现,主要用于Java应用程序之间进行服务调用。本文将深入探讨如何使用Http Invoker实现RCP客户端与后台的交互,以及相关知识点。 1. **Http Invoker的基本...
HttpInvoker主要面向Spring应用程序,易于集成,但相比Hessian,其数据传输效率较低,因为HTTP协议本身较重,且Java序列化也相对消耗资源。 XFire(后来被Apache CXF吸收)是一款基于XML的Web服务框架,它支持多种...
Spring框架是Java开发中广泛应用的轻量级框架,它提供了丰富的功能来简化应用程序的构建...同时,这也是一个很好的起点,可以帮助开发者进一步探索Spring与其他远程调用协议,如Hessian、 Burlap或HTTP Invoker的集成。
Spring 2.5 jar 所有开发包及完整文档及项目开发实例 spring jar 包详解spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下...
它提供了多种集成远程服务的方式,包括RMI、HTTP Invoker、Hessian等。在Spring中配置Hessian服务,我们可以利用Spring的自动装配能力,简化服务的发布和消费过程。 要实现Spring4与Hessian4的结合,你需要完成以下...
同时,随着Java技术的发展,虽然RMI在一些场景下依然有用,但很多现代的分布式通信框架,如Spring的JMS、HTTP Invoker、Hessian、 Burlap等,以及基于HTTP/REST的Web服务,已经提供了更灵活、更高效的选择。...
2. **spring-beans.jar**:该jar包提供了BeanFactory,它是工厂模式的实现,通过BeanFactory可以实例化、定位、配置应用程序中的对象。同时,它还支持依赖注入(Dependency Injection, DI),使得组件之间的依赖关系...
选择合适的远程访问协议,比如不需要SOAP的互通性,一个简单方案(如Spring的HttpInvoker支持)将更快更简单。 对影响大部分应用程序的aspect,考虑使用AspectJ代替Spring AOP; 尽量避免使用分布式事务(基于容器...
4. **配合Spring Remoting**:Spring Remoting提供了一种抽象层,可以轻松地切换到其他远程调用机制,如Hessian、 Burlap或HTTP Invoker。这意味着如果你的系统开始时使用RMI,但后来希望切换到其他协议,Spring ...
- 访问服务实例:通过HTTP Invoker代理调用服务器端的服务接口。 ##### 2.3 服务器端示例 - **服务接口**:`UcService.java` 接口提供两项服务:查询用户信息和记录日志。 ```java public interface Uc...
- **Spring远程服务**:Spring框架支持多种远程服务调用机制,如RMI、HTTP invoker等,简化了远程服务的开发和部署。 5. **Web层支持** - **Spring MVC**:Spring框架提供了一种模型-视图-控制器(Model-View-...
Spring框架还支持远程服务调用,如RMI、HTTP Invoker等,使得分布式系统间的通信变得简单。 #### AOP(面向切面编程) Spring框架的AOP模块提供了一种声明式方式来实现横切关注点,如日志记录、安全控制等,无需...