您的位置:首页 > 其它

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐