HSF服务的开发与使用

转载:http://www.cnblogs.com/cloudml/p/4675705.html#undefined

1.HSF服务的开发

1) 基于Maven创建一个web工程HSFService,如下图,其他的可以自定义。

2)创建好好在src/main目录下创建一个java目录,并将其设置为sources folder,如下图所示:

3) 配置项目的pom.xml,如下

 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 2   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 3   <modelVersion>4.0.0</modelVersion>
 4   <groupId>com.hsf</groupId>
 5   <artifactId>HSFService</artifactId>
 6   <packaging>war</packaging>
 7   <version>1.0-SNAPSHOT</version>
 8   <name>HSFService Maven Webapp</name>
 9   <url>http://maven.apache.org</url>
10   <properties>
11     <java-version>1.7.0_67</java-version>
12   </properties>
13   <dependencies>
14     <!-- Junit依赖包-->
15     <dependency>
16       <groupId>junit</groupId>
17       <artifactId>junit</artifactId>
18       <version>3.8.1</version>
19       <scope>test</scope>
20     </dependency>
21     <!--spring和servlet的依赖包-->
22     <dependency>
23       <groupId>javax.servlet</groupId>
24       <artifactId>servlet-api</artifactId>
25       <version>2.5</version>
26     </dependency>
27     <dependency>
28       <groupId>org.springframework</groupId>
29       <artifactId>spring</artifactId>
30       <version>2.5.6</version>
31       <type>jar</type>
32       <scope>compile</scope>
33     </dependency>
34     <!-- mysql依赖包-->
35     <dependency>
36       <groupId>mysql</groupId>
37       <artifactId>mysql-connector-java</artifactId>
38       <version>5.1.6</version>
39     </dependency>
40     <dependency>
41       <groupId>commons-dbcp</groupId>
42       <artifactId>commons-dbcp</artifactId>
43       <version>1.2.2</version>
44     </dependency>
45     <!-- Ibatits依赖包-->
46     <dependency>
47       <groupId>org.apache.servicemix.bundles</groupId>
48       <artifactId>org.apache.servicemix.bundles.ibatis-sqlmap</artifactId>
49       <version>2.3.4.726_4</version>
50     </dependency>
51     <!-- 淘宝HSF服务的依赖包-->
52     <dependency>
53       <groupId>com.taobao.hsf</groupId>
54       <artifactId>hsf.app.spring</artifactId>
55       <version>1.4.9.2</version>
56     </dependency>
57   </dependencies>
58   <build>
59     <finalName>HSFService</finalName>
60     <plugins>
61       <plugin>
62         <artifactId>maven-compiler-plugin</artifactId>
63         <configuration>
64           <source>${java-version}</source>
65           <target>${java-version}</target>
66         </configuration>
67       </plugin>
68     </plugins>
69   </build>
70 </project>

4) 编写服务接口和服务的实现

代码如下:

 1 package com.hsf.services;
 2 import java.lang.String;
 3 public interface SayHelloService{
 4     public String sayHello(String user);
 5 }
 6 package com.hsf.services.impl;
 7 import com.hsf.services.SayHelloService;
 8 public class SayHelloServiceImpl implements SayHelloService {
 9       public String sayHello(String user) {
10         return "Hello "+user+" ,Time is "+System.currentTimeMillis()+"(ms)";
11       }
12     }

5) 在Spring的配置文件中配置HSFSpringProviderBean

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns="http://www.springframework.org/schema/beans"       xsi:schemaLocation="            http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                ">
 3     <!-- HSF服务配置-->
 4     <!--配置SayHelloService服务的实现 -->
 5     <bean id="SayHelloServiceImpl" class="com.hsf.services.impl.SayHelloServiceImpl"/>
 6     <!--配置SayHelloService服务提供者-->
 7     <bean id="SayHelloService" class="com.taobao.hsf.app.spring.util.HSFSpringProviderBean" init-method="init">
 8         <!--配置服务提供者对外提供的接口SayHelloService-->
 9         <property name="serviceInterface">
10             <value>com.hsf.services.SayHelloService</value>
11         </property>
12         <!--服务的实现者-->
13         <property name="target">
14             <ref bean="SayHelloServiceImpl"/>
15         </property>
16         <property name="serviceVersion">
17             <value>1.0.0.0.dev</value>
18         </property>
19         <!-- 组别一致的服务才能互相调用-->
20         <property name="serviceGroup">
21             <value>HSF</value>
22         </property>
23         <property name="serviceName">
24             <value>SayHello</value>
25         </property>
26     </bean>
27     <!--配置SayHelloService服务的消费者-->
28     <bean id="SayHelloServiceConsumer" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init">
29      <!--服务的接口名和版本号须与服务提供者定义的一致-->
30         <property name="interfaceName">
31             <value>com.hsf.services.SayHelloService</value>
32         </property>
33         <property name="version">
34             <value>1.0.0.0.dev</value>
35         </property>
36     </bean>
37 </beans>

6) 在Web.xml中配置spring的上下文环境

 1 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" >
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns="http://java.sun.com/xml/ns/javaee"         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"         id="WebApp_ID" version="3.0">
 3   <display-name>HSFService</display-name>
 4  <!-- 默认显示界面 -->
 5   <welcome-file-list>
 6       <welcome-file>index.jsp</welcome-file>
 7       <welcome-file>index.html</welcome-file>
 8   </welcome-file-list>
 9    <!-- 配置spring上下文环境applicationContext -->
10    <context-param>
11        <param-name>contextConfigLocation</param-name>
12        <!-- 应用上下文配置文件 -->
13        <param-value>classpath*:applicationContext.xml</param-value>
14    </context-param>
15     <!--配置spring启动listener入口 -->
16     <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
17     </listener>
18 </web-app>

7) 将HSFService部署,启动tomcat,即可在HSF服务治理中心http://ops.jm.taobao.net/hsfops中根据自己主机的IP查找自己发布的服务

8) 将服务接口SayHelloService打成Jar包(二方包)以供客户端使用

2.HSF服务的使用

1) 在客户端的pom.xml文件中添加对HSF的依赖

1 <dependency>
2   <groupId>com.taobao.hsf</groupId>
3   <artifactId>hsf.app.spring</artifactId>
4   <version>1.4.9.2</version>
5 </dependency>

2) 在客户端的Spring配置文件中配置HSFSpringConsumerBean

 1 <!--配置SayHelloService服务的消费者-->
 2 <bean id="SayHelloServiceConsumer" class="com.taobao.hsf.app.spring.util.HSFSpringConsumerBean" init-method="init">
 3     <!--服务的接口名和版本号须与服务提供者定义的一致-->
 4     <property name="interfaceName">
 5         <value>com.hsf.services.SayHelloService</value>
 6     </property>
 7     <property name="version">
 8         <value>1.0.0.0.dev</value>
 9     </property>
10 </bean>

3)引入服务端打好的二方Jar包com.hsf.services.jar,创建SayHelloServlet使用服务

SayHelloServlet的代码如下:

 1 package com.hsf.consumer;
 2 import com.hsf.services.SayHelloService;
 3 import org.springframework.web.context.WebApplicationContext;
 4 import org.springframework.web.context.support.WebApplicationContextUtils;
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 import java.io.IOException;
10 import java.io.PrintWriter;
11
12 public class SayHelloServlet extends HttpServlet {
13     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
14         //通过ServletContext获取Spring的上下文
15         WebApplicationContext context= WebApplicationContextUtils.getWebApplicationContext(getServletContext());
16         //通过BeanFactory获取服务的消费者SayHelloServiceConsumer
17         SayHelloService sayHelloService= (SayHelloService) context.getBean("SayHelloServiceConsumer");
18
19         PrintWriter out=response.getWriter();
20         //调用服务
21         out.println(sayHelloService.sayHello("xiwu.xxw"));
22         out.close();
23         return;
24     }
25     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
26         doPost(request,response);
27     }
28 }

5)部署该web工程到tomcat,启动tomcat后访问http://localhost:8079/ SayHello?name=zhangsna 即可看到打印出“Hello zhangsan,Time is xxxxx (ms)

时间: 2024-08-11 07:36:21

HSF服务的开发与使用的相关文章

HTML5端云整合:智能端应用与云端服务整合开发实战

课程简介:       作为Web与移动开发的新标准的HTML5/JavaScript/CSS3,已经纷纷被手机应该开发采用,这不但让UI极具弹性,而且也更容易与云计算整合. 本课程是云计算与智能终端时代的HTML5开发的一站式解决方案,专为企业内训和公开课制作,是完整覆盖HTML5时代开发人员所需使用的360度的技术解决方案,内容细致入微: 课程目标: 全面解析以HTML5+JavaScript来开发应用: 使用JavaScript开发云计算: 定制浏览器并具备开放html5浏览器的能力: 学

微信服务号开发-获取用户位置信息

微信服务号开发-获取用户位置信息 在微信公众号开发的中,获取用户位置信息是非常常见的功能需求,通过用户的位置信息,可以做一些地图导航,以及基于LBS的营销活动.下面将介绍微信服务号获取用户位置信息的原理与步骤. 原理 1. 位置信息获取流程 2. 位置信息报文 <xml><ToUserName><![CDATA[gh_public_member_account]]></ToUserName> <FromUserName><![CDATA[o

微信公众服务号开发

1 公司提供接口,微信平台可以通过访问我们的接口,进行数据交互,通过xml. 2 http://mp.weixin.qq.com/ 微信服务号平台,输入用户名密码进入高级功能-开发者模式, 3 申请服务号之后,微信会提供appid和AppSecret两个参数,根据这两个参数可以获取token,token作为你服务号和微信交互的证明. 4 接下里就是完成自己的接口部分的开发,然后接口的服务器配置地址输入微信服务号的服务器配置url,本地的项目地址是不行的,得是能访问的地址 5 接口的开发,接受xm

如何进行SuperMap iServer服务端开发

有时候在进行地图应用开发时,可能单纯的客户端无法满足要求(如功能和性能等因素),这时就需要进行iServer的服务端开发.SuperMap iServer 6R/7c的服务端开发步骤如下: 一.在Eclipse中新建一个Dynamic Web Project 此过程截图略去 二.引用iServer所需的各类jar包 经测试后发现,必须引用iServer/WEB-INF/lib下的所有jar包,否则运行时会出现一些奇怪的错误.这些jar包所在的位置为[iServer安装目录]\webapps\is

微服务业务开发三个难题-拆分、事务、查询(上)

微服务架构变得越来越流行了.它是模块化的一种方法.它把一整块应用拆分成一个个服务.它让团队在开发大型复杂的应用时更快地交付出高质量的软件.团队成员们可以轻松地接受到新技术,因为他们可以使用最新且推荐的技术栈来实现各自的服务.微服务架构也通过让每个服务都被部署在最佳状态的硬件上而改善了应用的扩展性. 但微服务不是万能的.特别是在 领域模型.事务以及查询这几个地方,似乎总是不能适应拆分.或者说这几块也是微服务需要专门处理的地方,相对于过去的单体架构. 在这篇文章中,我会描述一种开发微服务的方法,这个

在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用

本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四.服务间通信与集成 五.服务智能路由 六.集中配置管理 七.高可用和容错 八.监控和日志 九.服务的部署和发布策略 微服务概述 单体应用通常指在一个程序中满足多个业务或技术领域的需求,不同的需求领域内化为模块.假定我们要开发一个Web应用,通常的MVC模式可以满足要求.针对不同领域有不少代码生成工具

在线教学、视频会议软件 Webus Fox(2) 服务端开发手册

上次在<在线教学.视频会议软件 Webus Fox(1)文本.语音.视频聊天及电子白板基本用法>里介绍了软件的基本用法.本文主要介绍服务器端如何配置.开发. 1配置 1.1 IIS配置 Fox支持最基本的.net Framework4.0和IIS6/IIS7. 在IIS7中,对应应用程序池,需要配置为经典模式,支持.net4.0 1.2 web.config配置 Fox服务器端是暂时是host在IIS上,将来将Host在Windows Service上.对于IIS的配置,web.config是

微信公共服务平台开发(.Net的实现)1 认证“成为开发者”

http://www.cnblogs.com/freeliver54/p/3725979.html http://www.it165.net/pro/html/201402/9459.html 这些代码也就开始认证的时候用一次,以后就不用了: view sourceprint? 01.const string Token = "XXXXX";//你的token 02.protected void Page_Load(object sender, EventArgs e) 03.{ 04

不要害怕服务端开发(一)

经历了前端技术的变更,发现我再也不想去追前端技术了,同学们做java的现在还是做java,我之前做flash的现在没饭吃了,去年改做h5,行业不好混啊,java稳如狗. 之前一直想学服务端开发,现在改变了工作环境,稍微有点时间了,加上最近上班的工作实在是闲,上头布置的游戏前端demo,用3d写了一个,然后用2d写了一个,后面又用h5写了一个. 也找不到好的形容词去形容现在的状态,因为还在试用期,所以不敢太冒进,一直停留在写demo的进度上. 昨天开始,学着用nodejs写来静态服务器. 然后今天