java webservice实例教程

50 篇文章 2 订阅
15 篇文章 0 订阅

最近在学习web services,网上先关的资料不多,讲的都是很基础,例子也很简单,自己动手敲了敲在这里和大家分享一下,希望能对初学者有所帮助。

 

Web Services服务器端开发

服务器端开发用的是XFire,版本是1.2.6,XFire现在已经成apache下面的一个项目CXF的一部分了,老早就不更新版本了,XFire过不过时我是不知道,不过还有一些人在用。

开发环境是:IDEA,Tomcat 8.0

新建一个项目,可以是web project也可以是web service project,区别不大。项目建好之后:(项目名假设为:webservice)

1、下载XFire1.2.6.jar

jar包下载地址 http://pan.baidu.com/s/1bZ8yf0

加压下载好的文件,将lib文件夹下所有jar包添加到项目中,并且将xfire-all-1.2.6.jar加入到项目中。

 

2、编写服务接口

1public interface CalculatorService {
2    public int add(int a,int b);
3    public int sub(int a,int b);
4    public int mul(int a,int b);
5    public int div(int a,int b);
6}

3、编写服务接口实现类

01public class CalculatorServiceImpl implements CalculatorService{
02  
03    @Override
04    public int add(int a, int b) {
05        return  a+b;  //To change body of implemented methods use File | Settings | File Templates.
06    }
07  
08    @Override
09    public int sub(int a, int b) {
10        return a-b;  //To change body of implemented methods use File | Settings | File Templates.
11    }
12  
13    @Override
14    public int mul(int a, int b) {
15        return a*b;  //To change body of implemented methods use File | Settings | File Templates.
16    }
17  
18    @Override
19    public int div(int a, int b) {
20        return a/b;  //To change body of implemented methods use File | Settings | File Templates.
21    }
22}

4、编写web.xml

01<?xml version="1.0" encoding="UTF-8"?>
03         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
04         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
05          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
06         version="3.0">
07    <servlet>
08        <servlet-name>XFireServlet</servlet-name>
09        <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
10        <load-on-startup>0</load-on-startup>
11    </servlet>
12  
13    <servlet-mapping>
14        <servlet-name>XFireServlet</servlet-name>
15        <url-pattern>/services/*</url-pattern>
16    </servlet-mapping>
17  
18    <servlet-mapping>
19        <servlet-name>XFireServlet</servlet-name>
20        <url-pattern>/services/XFireServlet/*</url-pattern>
21    </servlet-mapping>
22  
23    <welcome-file-list>
24        <welcome-file>index.jsp</welcome-file>
25    </welcome-file-list>
26  
27</web-app>

5、配置服务
在src目录下新建WEB-INF文件夹,在WEB-INF文件夹下新建xfire文件夹,在xfire下新建services.xml文件。

name表示服务的名字可以自己随便定义,serviceClass指明服务接口类,implementationClass指明服务实现类

01<?xml version="1.0" encoding="UTF-8"?>
03    <service>
04        <name>CalculatorService</name>
05        <serviceClass>com.young.service.CalculatorService</serviceClass>
06        <implementationClass>
07            com.young.service.CalculatorServiceImpl
08        </implementationClass>
09  
10    </service>
11</beans>

6、启动服务

将该项目添加到tomcat中,启动tomcat,在浏览器中输入http://localhost:8080/webservice/services就能看到该项目下所有服务,点击服务后面的[wsdl],就会看到服务的wsdl文件内容。
java webservice实例教程

6、编写客户端
通过WSDL地址来创建动态客户端,代码如下

1public class ClientTest {
2    public static void main(String[] args) throws Exception {
3        Client client = new Client(new URL("http://localhost:8080/webservice/services/CalculatorService?wsdl"));
4        Object[] results = client.invoke("add"new Object[]{12});
5        System.out.println(results[0]);
6    }
7}

项目文件目录结构如下:
java webservice实例教程

7.跨语言编写客户端
前面编写的客户端采用的是java语言,与Service采用的是同一个JVM,无法直观的体会出webservice跨平台跨语言的特性
下面采用c#编写客户端
打开Visual Studio,新建一个c# console project,命名为wsclient,添加引用,选择添加web引用,输入http://localhost:8080/webservice/services/CalculatorService?wsdl
给该引用命名为CalculatorService
编写测试代码,代码如下

01using System;
02using System.Collections.Generic;
03using System.Linq;
04using System.Text;
05using wsclient.CalculatorService;
06 
07namespace wsclient
08{
09    class Program
10    {
11        static void Main(string[] args)
12        {
13            CalculatorService.CalculatorService cal = new CalculatorService.CalculatorService();
14            int result = cal.add(12);
15            Console.WriteLine(result);
16            Console.ReadKey();
17        }
18    }
19}

点击运行,效果如下
java webservice实例教程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值