随笔-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 小小程序程序员混口饭吃 阅读(682) 评论(0)  编辑  收藏 所属分类: java

只有注册用户登录后才能发表评论。


网站导航: