首页 > 代码库 > spring 远程调用

spring 远程调用

spring远程调用:
------------------------
-----------server-----------
1.创建web项目
2.添加spring类库
    org.springframework.aop-3.1.0.RELEASE.jar
    org.springframework.asm-3.1.0.RELEASE.jar
    org.springframework.beans-3.1.0.RELEASE.jar
    org.springframework.context-3.1.0.RELEASE.jar
    org.springframework.context.support-3.1.0.RELEASE.jar
    org.springframework.core-3.1.0.RELEASE.jar
    org.springframework.web-3.1.0.RELEASE.jar
    org.springframework.web.servlet-3.1.0.RELEASE.jar
    org.springframework.expression-3.1.0.RELEASE.jar

    com.springsource.org.aopalliance-1.0.0.jar
    com.springsource.org.apache.commons.logging-1.1.1.jar
3.创建接口和实现类
    public interface WelcomeService {
        public void sayHello(String name);
    }

    public class WelcomeServiceImpl implements WelcomeService {
        public void sayHello(String name) {
            System.out.println(name);
        }
    }
4.配置spring配置文件.
    [web-inf/${servler-name}-servlet.xml]
    <?xml version="1.0"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:cache="http://www.springframework.org/schema/cache"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd ">
        
        <!-- pojo -->
        <bean id="welcomeService" class="cn.itcast.spring.rpc.service.WelcomeServiceImpl" />
        
        <!-- 导出器,将pojo对象转变成controller,处理请求 -->
        <bean name="/ws.service" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
            <property name="serviceInterface">
                <value>cn.itcast.spring.rpc.service.WelcomeService</value>
            </property>
            <property name="service" ref="welcomeService" />
        </bean>
    </beans>

-----------client-----------
5.创建java项目
6.引入类库
    同服务端.
7.复制服务端接口到客户端.
8.创建src/client.xml spring配置文件
    <?xml version="1.0"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:cache="http://www.springframework.org/schema/cache"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd ">
        <!-- 客户端代理 -->
        <bean id="wsClient" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
            <property name="serviceUrl">
                <value>http://localhost:8080/lsn_springrpc_0909_server/ws.service</value>
            </property>
            <property name="serviceInterface">
                <value>cn.itcast.spring.rpc.service.WelcomeService</value>
            </property>
        </bean>
    </beans>
9.创建测试类
    public class App {
        public static void main(String[] args) {
            ApplicationContext ac = new ClassPathXmlApplicationContext("client.xml");
            WelcomeService ws = (WelcomeService) ac.getBean("wsClient");
            ws.sayHello("tom");
        }
    }
10.运行
    先启动服务器端
    在启动客户端.

将项目中的统计服务对外公开,供第三方系统整合
-------------------------------------------
--------- server ---------
1.引入类库
    org.springframework.web.servlet-3.1.0.RELEASE.jar
2.配置web.xml文件DispatcherServlet
    <!--  配置spring远程调用使用的分发器servlet -->
    <servlet>
        <servlet-name>service</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:service-spring-http-inovker.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>service</servlet-name>
        <url-pattern>/*.service</url-pattern>
    </servlet-mapping>
3.配置spring远程调用配置文件
    [conf/service-spring-http-invoker.xml]
    <?xml version="1.0"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:cache="http://www.springframework.org/schema/cache"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.1.xsd ">
        
        <!-- 远程调用统计服务类 -->
        <bean name="/ss.service" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
            <property name="serviceInterface" value="cn.itcast.surveypark.service.StatisticsService" />
            <property name="service" ref="statisticsService" />
        </bean>
    </beans>

-------  client  ----------
4.添加客户端配置bean.
    <!-- 客户端代理 -->
    <bean id="ssClient" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
        <property name="serviceUrl">
            <value>http://localhost:8000/lsn_surveypark0909/ss.service</value>
        </property>
        <property name="serviceInterface">
            <value>cn.itcast.surveypark.service.StatisticsService</value>
        </property>
    </bean>
5.测试