需要包:
spring 2.5.6
hessian 3.1.6
spring2.5.6不支持hessian4.0
web容器:
tomcat 6.0
1、定义接口;
2、通过spring mvc公布接口
spring配置文件中增加如下代码
配置web.xml,增加如下代码:
3、将接口发布到客户端程序
将IHello复制到客户端程序
客户端spring配置
<bean id="helloHessian" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl">
<value>http://xxxx:8080/hessian/remote/helloHessian</value>
</property>
<property name="serviceInterface">
<value>IHello</value>
</property>
</bean>
4、客户端调用接口
helloHessian.hello(null);
具体实现时,客户端的配置没有用到spring配置文件,而是写代码手工创建一个对象,代码如下:
spring 2.5.6
hessian 3.1.6
spring2.5.6不支持hessian4.0
web容器:
tomcat 6.0
1、定义接口;
public TBean implements Serializable
{
private String name;
private String code;
/**
*todo: get and set method here
*/
}
public interface IHello
{
TBean hello(TBean tb);
}
public class Hello implements IHello
{
/**todo:*/
}
2、通过spring mvc公布接口
spring配置文件中增加如下代码
<bean id="hello" class="Hello"/>
<bean name="helloHessian"
class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service"><ref bean="hello"/></property>
<property name="serviceInterface">
<value>IHello</value>
</property>
</bean>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/helloHessian">helloHessian</prop>
</props>
</property>
</bean>
配置web.xml,增加如下代码:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/spring*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>remote</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:conf/spring/spring.remote.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remote</servlet-name>
<url-pattern>/remote/*</url-pattern>
</servlet-mapping>
3、将接口发布到客户端程序
将IHello复制到客户端程序
客户端spring配置
<bean id="helloHessian" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl">
<value>http://xxxx:8080/hessian/remote/helloHessian</value>
</property>
<property name="serviceInterface">
<value>IHello</value>
</property>
</bean>
4、客户端调用接口
helloHessian.hello(null);
具体实现时,客户端的配置没有用到spring配置文件,而是写代码手工创建一个对象,代码如下:
public class DataSyncRemote
{
private static HessianProxyFactoryBean hessianProxy = new HessianProxyFactoryBean();
private Logger logger = Logger.getLogger(DataSyncRemote.class);
static
{
hessianProxy.setServiceInterface(IDataSyncHessian.class);
}
public static IDataSyncHessian getRemoteService(String ip)
{
hessianProxy.setServiceUrl("http://"+ip+":8080/hessian/remote/helloHessian");
hessianProxy.setServiceInterface(IDataSyncHessian.class);
hessianProxy.afterPropertiesSet();
return (IDataSyncHessian) hessianProxy.getObject();
}
}