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