說明 :
1. 講述如何配置Hessian的服務器端(與Spring集成).
2. 講述客戶端如何調用
① 使用HessianProxyFactory Hessian代理工廠直接調用
② 使用HessianProxyFactoryBean Hessian代理工廠Bean來完成接口調用.
1. 講述如何配置Hessian的服務器端(與Spring集成).
接口定義類: com.wtang.isay. Isay:
- package com.wtang.isay;
- public interface Isay {
- public String sayHello(String arg1,String arg2);
- }
接口具體實現類: com.wtang.isay. IsayImpl
- package com.wtang.isay;
- public class IsayImpl implements Isay {
- public String sayHello(String arg1, String arg2) {
- return "Hello:" + arg1 + arg2;
- }
- }
配置Web.xml:
- <servlet>
- <servlet-name>remote</servlet-name>
- <!-- 使用Spring的代理Servlet -->
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>namespace</param-name>
- <param-value>classes/remote-servlet</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>
配置remote-servlet.xml[該文件位於src目錄下,即編譯後存在與classes下]:
2. 講述客戶端如何調用
① 使用HessianProxyFactory Hessian代理工廠直接調用
即:
- package com.wtang.test;
- import java.net.MalformedURLException;
- import com.caucho.hessian.client.HessianProxyFactory;
- import com.wtang.isay.Isay;
- public class NormalClient {
- public static void main(String[] args) throws MalformedURLException {
- //Spring Hessian代理Servelet
- String url = "http://localhost:8080/HessianSpring/remote/helloSpring";
- HessianProxyFactory factory = new HessianProxyFactory();
- Isay api = (Isay) factory.create(Isay.class, url);
- System.out.println(api.sayHello("chen", "weitang"));
- }
- }
輸出Hello:chenweitang
2. 講述客戶端如何調用
② 使用HessianProxyFactoryBean Hessian代理工廠Bean來完成接口調用.
配置客戶端 remote-client.xml:
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!-- 客戶端Hessian代理工廠Bean -->
- <bean id="clientSpring" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
- <!-- 請求代理Servlet路徑 -->
- <property name="serviceUrl">
- <value>http://localhost:8080/HessianSpring/remote/helloSpring</value>
- </property>
- <!-- 接口定義 -->
- <property name="serviceInterface">
- <value>com.wtang.isay.Isay</value>
- </property>
- </bean>
- </beans>
調用:
- package com.wtang.test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.wtang.isay.Isay;
- public class SpringClient {
- public static void main(String[] args) {
- ApplicationContext contex = new ClassPathXmlApplicationContext(
- "remote-client.xml");
- // 獲得客戶端的Hessian代理工廠bean
- Isay i = (Isay) contex.getBean("clientSpring");
- System.out.println(i.sayHello("chen", "weitang"));
- }
- }
輸出Hello:chenweitang