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
小小程序程序員混口飯吃 閱讀(692)
評論(0) 編輯 收藏 所屬分類:
java