一.服务端web程序配置要点:
1.WEB-INF/lib目录下增加:spring-2.0.7.jar,hessian-3.0.13.jar等包;
2.WEB-INF/web.xml中增加Hessian服务和Spring容器配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/conf/spring/applicationContext.xml
/WEB-INF/conf/spring/beans-data-source.xml
/WEB-INF/conf/spring/beans-dao.xml
/WEB-INF/conf/spring/beans-bo.xml
/WEB-INF/remoting-servlet.xml
</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/conf/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>remoting</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remoting</servlet-name>
<url-pattern>/remoting/*</url-pattern>
</servlet-mapping>
3. 增加WEB-INF/remoting-servlet.xml 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean name="/userService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="userBO"/>
<property name="serviceInterface" value="com.sw.tangseng.admin.bo.UserBO"/>
</bean>
</beans>
4.配置实例中Spring的业务对象 /WEB-INF/conf/spring/beans-bo.xml ,Spring的其他配置略:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="userBO" class="com.sw.tangseng.admin.bo.impl.UserBOImpl">
<property name="userDAO">
<ref bean="userDAO" />
</property>
</bean>
</beans>
5.使用到的传输对象DataObject必须序列化,如下:
import java.io.Serializable;
public class UserDO implements Serializable {
private static final long serialVersionUID = 8935029394766425585L;
/**
* This field was generated by Abator for iBATIS.
* This field corresponds to the database column T_USER.id
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
private Integer id;
/**
* This field was generated by Abator for iBATIS.
* This field corresponds to the database column T_USER.user_name
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
private String user_name;
/**
* This field was generated by Abator for iBATIS.
* This field corresponds to the database column T_USER.user_pwd
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
private String user_pwd;
/**
* This method was generated by Abator for iBATIS.
* This method returns the value of the database column T_USER.id
*
* @return the value of T_USER.id
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public Integer getId() {
return id;
}
/**
* This method was generated by Abator for iBATIS.
* This method sets the value of the database column T_USER.id
*
* @param id the value for T_USER.id
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public void setId(Integer id) {
this.id = id;
}
/**
* This method was generated by Abator for iBATIS.
* This method returns the value of the database column T_USER.user_name
*
* @return the value of T_USER.user_name
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public String getUser_name() {
return user_name;
}
/**
* This method was generated by Abator for iBATIS.
* This method sets the value of the database column T_USER.user_name
*
* @param user_name the value for T_USER.user_name
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public void setUser_name(String user_name) {
this.user_name = user_name;
}
/**
* This method was generated by Abator for iBATIS.
* This method returns the value of the database column T_USER.user_pwd
*
* @return the value of T_USER.user_pwd
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public String getUser_pwd() {
return user_pwd;
}
/**
* This method was generated by Abator for iBATIS.
* This method sets the value of the database column T_USER.user_pwd
*
* @param user_pwd the value for T_USER.user_pwd
*
* @abatorgenerated Wed Apr 09 09:43:08 CST 2008
*/
public void setUser_pwd(String user_pwd) {
this.user_pwd = user_pwd;
}
}
服务端配置到此结束,下面讲客户端的调用配置。
二.客户端调用配置:
1.WEB-INF/lib目录下增加:spring-2.0.7.jar,hessian-3.0.13.jar等包;
2.WEB-INF/web.xml中Spring的配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/conf/spring/applicationContext.xml
/WEB-INF/conf/spring/beans-data-source.xml
/WEB-INF/conf/spring/beans-dao.xml
/WEB-INF/conf/spring/beans-bo.xml
</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/conf/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jExposeWebAppRoot</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>1000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3.Spring的Bean的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="userClientBO" class="com.sw.tangseng.admin.bo.impl.ImplCityBO">
<property name="userBO">
<ref bean="userService" />
</property>
</bean>
<!-- 使用HessianProxyFactoryBean 连接远程Hessian服务-->
<bean id="userService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl" value="http://127.0.0.1:8090/vote/remoting/userService"/>
<property name="serviceInterface" value="com.sw.tangseng.admin.bo.UserBO"/>
</bean>
</beans>
所有关键配置结束! :)