-------------------------Hessian 远程调用服务-----------------------
服务端 (服务端不需要Hessian的jar包)
1) 创建接口 HelloService
实现类 HelloServiceImpl
2) web.xml
<servlet>
<servlet-name>remote</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>remote</servlet-name>
<url-pattern>/remote/*</url-pattern>
</servlet-mapping>
3) WEB-INF 下配置 (注意:文件名称为 remote-servlet.xml ;此处的remote要与上面的servlet-name中的对应,可以是其它)
<?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="helloService" class="com.xx.service.impl.HelloServiceImpl"></bean>
<bean name="/helloService" class="org.springframework.remoting.caucho.HessianServiceExporter">
<property name="service" ref="helloService"/>
<property name="serviceInterface" value="com.xx.service.HelloService"/>
</bean>
</beans>
客户端 (需要Hessian的jar包;将服务端中接口打成jia包导入)
1) web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-public.xml</param-value>
</context-param>
2) src
<bean id="helloService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceUrl" value="http://localhost:8080/Hessian_Service/remote/helloService"/>
<property name="serviceInterface" value="com.xx.service.HelloService"/>
</bean>
3) 测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:spring-public.xml")
public class HelloTest {
@Resource HelloService helloService;
@Test
public void test(){
System.out.println(helloService.print("aaa"));
}
}