1.搭建HSF环境
实际上就是下载hsf.sar,然后放置到tomcat的应用目录下即可
2.服务端
(1)创建web项目
(2)添加编译和打包的插件
<properties>
<java.version>1.6</java.version>
</properties>
<build>
<finalName>HSFSampleLanshan</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
(3)添加spring和servlet依赖
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_3.0_spec</artifactId>
<version>1.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.6</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
(4)创建一个HelloWorld服务,作为服务端,需要提供接口和实现
接口:
package com.hsf;
public interface HelloWorldService
{
public String sayHello(String name);
}
实现:
package com.hsf.impl;
import com.hsf.HelloWorldService;
public class HelloWorldServiceImpl implements HelloWorldService
{
public String sayHello(String name) {
return "hello "+name;
}
}
(5)为HelloWorld服务编写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.5.xsd">
<bean id="HelloWorldServiceImpl" class="com.hsf.impl.HelloWorldServiceImpl" />
<bean id="HelloWorldService" class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean"
init-method="init">
<property name="serviceInterface">
<value>com.hsf.HelloWorldService</value>
</property>
<property name="target">
<ref bean="HelloWorldServiceImpl" />
</property>
<property name="serviceVersion">
<value>1.0.0.cpf</value>
</property>
<property name="serviceGroup">
<value>HSF</value><!-- 组别一致的服务才可以互相调用 -->
</property>
<property name="serviceName"><!--仅仅便于管理 -->
<value>HelloWorld</value>
</property>
</bean>
</beans>
(6)在web.xml中添加一个spring监听器,让容器启动的时候spring完成服务初始化
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这里不配置applicationContext.xml的路径,默认位于WEB-INF下
完成之后,打成war包并放在tomcat下,启动tomcat,即可完成服务的发布
3.客户端
(1)创建web项目
这里,将server和client放在同一个项目中
(2)创建服务的接口
以为本例使用的是同一个项目,所以就不编写了
(3)编写一个类用于访问提供的服务(这里用servlet)
package com.controller;
import com.hsf.HelloWorldService;
public class HelloWorldServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
WebApplicationContext context = WebApplicationContextUtils
.getWebApplicationContext(getServletContext());
HelloWorldService helloWorldService = (HelloWorldService) context
.getBean("HelloWorldConsumer");
PrintWriter out = resp.getWriter();
out.println(helloWorldService.sayHello("lanshan"));
return;
}
}
(4)编写客户端的spring配置文件
这里使用的是同一个项目,所以直接添加就好
<bean id="HelloWorldConsumer" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean"
init-method="init">
<property name="interfaceName">
<value>com.hsf.HelloWorldService</value>
</property>
<property name="version">
<value>1.0.0.cpf</value>
</property>
</bean>
(5)web.xml中添加servlet的映射
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.controller.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
4.运行
打包运行即可