隨筆-109  評論-187  文章-25  trackbacks-0

          1

          Package

          net.loocky.rmi.spring

          |-------BusinessService.java

          |-------Service.java

          |-------ServiceClient.java

          |-------ServiceImpl.java

          |-------ServiceServer.java

          |-------rmi-config.xml

          ?

          (1)??? Service.java? is interface

          package net.loocky.rmi.spring;

          ?

          import java.rmi.Remote;

          import java.rmi.RemoteException;

          ?

          ?

          public interface Service? extends Remote{

          ?

          ?????? public String getName()throws RemoteException ;

          ?

          ?????? public void setName(String name)throws RemoteException ;

          ?

          }

          (2)??? BusinessService.java is business interface too ,not extends remote

          package net.loocky.rmi.spring;

          public interface BusinessService {

          ?????? public String getName() ;

          ?

          ?????? public void setName(String name);

          }

          (3)??? ServiceImpl

          package net.loocky.rmi.spring;

          ?

          public class ServiceImpl implements Service, BusinessService {

          ?????? private String name = "111";

          ?

          ?????? public String getName() {

          ????????????? System.out.println(name);

          ????????????? return name;

          ?????? }

          ?

          ?????? public void setName(String name) {

          ????????????? this.name = name;

          ?

          ?????? }

          ?

          }

          (4)??? ServiceServer

          package net.loocky.rmi.spring;

          ?

          import org.springframework.context.ApplicationContext;

          import org.springframework.context.support.ClassPathXmlApplicationContext;

          ?

          public class ServiceServer {

          ?????? public static void main(String[] args) throws Exception {

          ????????????? //load the config file ,and spring will deploy the service automatically

          ????????????? ApplicationContext ctx = new ClassPathXmlApplicationContext(

          ??????????????????????????? "rmi-config.xml");

          ?????? }

          }

          (5)??? ServiceClient

          package net.loocky.rmi.spring;

          ?

          import org.springframework.context.ApplicationContext;

          import org.springframework.context.support.ClassPathXmlApplicationContext;

          ?

          public class ServiceClient {

          ?????? public static void main(String[] args) throws Exception {

          ????????????? // HessianProxyFactory proxyFactory = new HessianProxyFactory();

          ????????????? ApplicationContext ctx = new ClassPathXmlApplicationContext(

          ??????????????????????????? "rmi-config.xml");

          ????????????? BusinessService service = (BusinessService) ctx

          ??????????????????????????? .getBean("myServiceClient");

          ?????? // 下面的方式是不可行的,因為 SPRING 的, CGLIB enhance 了對象

          // BusinessService service =

          ????????????? // (BusinessService)Naming.lookup("rmi://localhost:1099/aaaa");

          ????????????? // service.setName("sssssssssssssss");

          ????????????? System.out.println(service.getName());

          ?????? }

          ?

          }

          (6)??? rmi-config.xml

          <? xml version = "1.0" encoding = "UTF-8" ?>

          <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

          ??? "http://www.springframework.org/dtd/spring-beans.dtd" >

          ??? < beans >

          ??? < bean id = "myService" class = "net.loocky.rmi.spring.ServiceImpl" />

          ??? < bean id = "serviceExporter" class = "org.springframework.remoting.rmi.RmiServiceExporter" >

          ??????? < property name = "serviceName" >

          ??????????? < value > aaaa </ value >

          ??????? </ property >

          ??????? < property name = "service" >

          ??????? ???? < ref bean = "myService" />

          ??????? </ property >

          ??????? < property name = "serviceInterface" >

          ??????????? < value > net.loocky.rmi.spring.BusinessService </ value >

          ??????? </ property >

          ??????? < property name = "registryPort" >

          ??????????? < value > 1099 </ value >

          ??????? </ property >

          ??? </ bean >

          ??? < bean id = "myServiceClient" class = "org.springframework.remoting.rmi.RmiProxyFactoryBean" >

          ?????? < property name = "serviceUrl" >

          ?????????? < value > rmi://127.0.0.1:1099/aaaa </ value >

          ?????? </ property >

          ?????? < property name = "serviceInterface" >

          ?????????? < value > net.loocky.rmi.spring.BusinessService </ value >

          ?????? </ property >

          ?

          ??? </ bean >

          </ beans >

          ?

          ?

          posted on 2006-05-29 14:45 小小程序程序員混口飯吃 閱讀(693) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 明水县| 会昌县| 蚌埠市| 沐川县| 泰安市| 大竹县| 山西省| 永年县| 板桥市| 青龙| 许昌市| 廉江市| 即墨市| 卢湾区| 康保县| 遂溪县| 绥芬河市| 横山县| 武山县| 全南县| 盈江县| 晋城| 铅山县| 兴宁市| 保定市| 松阳县| 宁南县| 广安市| 岗巴县| 清镇市| 同德县| 楚雄市| 北海市| 苍梧县| 鄂州市| 莆田市| 延吉市| 博乐市| 潍坊市| 东光县| 天峨县|