Web服务的创建,发布以及客户端的调用
2012-06-26 22:48
537 查看
刚做了一个例子,实现Web服务的创建,发布,以及在客户端使用XFire调用Web服务。
(环境: MyEclipse 10, Tomcat7.0, JDK1.7, XFire 1.2.6)
Part 1: 服务器端1.首先添加XFire用户库。如图.
至此,XFire用户库已经添加完毕。
2. 新建一个Web Service Project: ( 命名为:xWeb,模拟服务器端)
3 完成后,再New相关的包和类:
User 用户实体类
package com.bean; public class User { private String name; private String pwd; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
IUser 用户接口类
package com.biz; import com.bean.User; public interface IUser { public User checkUser(String name, String pwd); }
IUserImpl 用户接口实现类
package com.biz.impl; import com.bean.User; import com.biz.IUser; public class IUserImpl implements IUser { /*** * 模拟 * 当用户名为"buck"的时候,返回用户信息,否则返回null */ public User checkUser(String name, String pwd) { User user=null; if("buck".equals(name)&& "000".equals(pwd)){ user=new User(); user.setName("buck"); user.setPwd("000"); } return user; } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>XFireServlet</servlet-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class> <!-- 设置启动的有优先级 --> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
services.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://xfire.codehaus.org/config/1.0"> <service> <name>UserService</name> <serviceClass>com.biz.IUser</serviceClass> <implementationClass>com.biz.impl.IUserImpl</implementationClass> <!-- ...... --> </service> </beans>
4. 部署
Web服务可以部署在任何JavaEE服务器上,部署项目,启动Tomcat,服务器启动成功...
在浏览器输入: http://http://localhost:8080/xWeb/services,显示如下界面,恭喜,表示Web服务发布成功!
单击 [wsdl] ,可以查看WSDL描述,在WSDL文档中描述了Web服务提供的各种 方法名称 、方法参数个数、类型以及方法返回参数类型,从而方便在客户端应用程序调用Web服务。(如图)
至此,服务器端已经完成!.....
Part 2: 客户端
1.新建一个Web Service Project: ( 命名为:xClient,模拟客户端)
如图 New相关的包和类.
User用户实体类
package com.bean; public class User { private String name; private String pwd; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
IUserClient 客户端用户接口类
package com.biz; import com.bean.User; public interface IUserClient { public User checkUser(String name, String pwd); }
TestClient 测试类
package test; import org.codehaus.xfire.XFireFactory; import org.codehaus.xfire.client.XFireProxyFactory; import org.codehaus.xfire.service.Service; import org.codehaus.xfire.service.binding.ObjectServiceFactory; import com.bean.User; import com.biz.IUserClient; public class TestClient { /*** * * @param args * @throws Exception * * 使用XFire创建客户端调用Web步骤: * 1.创建服务接口模板 * 2.创建代理工厂 * 3.定义Web服务地址 * 4.根据接口模板和Web服务地址返回服务类 * 5.根据调用方法,返回结果。 */ public static void main(String[] args) throws Exception { // 创建服务接口 Service serviceModel = new ObjectServiceFactory().create(IUserClient.class); // 创建代理工厂 XFireProxyFactory factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire()); // 定义Web服务地址 String url = "http://localhost:8080/xWeb/services/UserService"; // 根据接口模板和Web服务地址,返回代理服务类 IUserClient ic = (IUserClient) factory.create(serviceModel, url); User user = ic.checkUser("buck", "000"); if (user != null) { System.out.println(user.getName() + "----" + user.getPwd()); } else { System.out.println("User is null!"); } } }
2. Run as Java Application.
The end......
June 26 ,2012.
相关文章推荐
- VS2010 创建WCF以及SL的客户端如何调用WCF服务教程(一): 创建WCF
- osgi学习笔记4之 web客户端调用已发布的接口服务
- VS2010 创建WCF以及SL的客户端如何调用WCF服务教程(一): 创建WCF
- [笔记-架构探险]web服务框架-cxf-4.1.多种方式的发布与客户端调用
- 学习笔记:使用Web Service Software Factory开发简易留言本服务以及Mobile调用实现-1.创建Service
- VS2010 创建WCF以及SL的客户端如何调用WCF服务 教程(二): 创建调用WCF的SilverLight客户端
- 使用axis2创建webservice步骤以及客户端调用service服务代码
- VS2010 创建WCF以及SL的客户端如何调用WCF服务教程(一): 创建WCF
- VS2010 创建WCF以及SL的客户端如何调用WCF服务 教程(二): 创建调用WCF的SilverLight客户端
- 通过 Jersey 客户端 API 调用 REST 风格的 Web 服务
- C# WebService创建、发布、调用的实例讲解
- 服务端使用Axis2-1.6.3发布webservice服务、客户端使用Axis1.4实现调用
- 通过Jersey客户端API调用REST风格的Web服务
- 发布WIN服务的WCF - 创建与调用
- WebService服务的发布及多种客户端方式调用
- spring boot整合cxf发布webservice服务和cxf客户端调用
- javaWeb服务详解【客户端调用】(含源代码,测试通过,注释) ——EmpService层
- Openlayers调用 GeoWebcache 发布的ArcGIS切片服务或IIS发布的切片图片
- session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务