原文:java webservice实例教程

源代码下载地址:http://www.zuidaima.com/share/1590350954564608.htm

最近在学习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://xfire.codehaus.org/Download

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

2、编写服务接口

1 public 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、编写服务接口实现类

01 public 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"?>
02 <web-app xmlns="http://java.sun.com/xml/ns/javaee"
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"?>
02 <beans xmlns="http://xfire.codehaus.org/config/1.0">
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文件内容。

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

1 public 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 }

项目文件目录结构如下:

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

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Text;
05 using wsclient.CalculatorService;
06  
07 namespace 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实例教程相关推荐

  1. JAVA正则表达式实例教程(转帖收藏)

    So many open source projects. Why not Open your Documents? 1 JAVA正则表达式实例教程 12/11/2008 1.正则表达式的知识要点 1 ...

  2. java webservice 示例_java webservice实例教程

    package com.young.service; /** * Created with IntelliJ IDEA. * User: veryyoung * Email:[email protec ...

  3. java程序设计实例教程 刘志成_Java程序设计实例教程教学课件作者刘志成章节05_Java图形用户界面技术.PPT...

    i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:grid,网格 i:Internet g:gri ...

  4. Java基础学习总结(82)——Java泛型实例教程

    1.为什么需要泛型 泛型在Java中有很重要的地位,网上很多文章罗列各种理论,不便于理解,本篇将立足于代码介绍.总结了关于泛型的知识.希望能给你带来一些帮助. 先看下面的代码: List list = ...

  5. WebService 工作原理及实例教程

    一.WebService到底是什么? 先来看下标准的定义:Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统 ...

  6. 孔浩老师 java 微信_孔浩老师JAVA WebService教程

    课程目录:01_webservice快速实例 02_wsimport的使用 03_wsdl和soap讲解(介入了tcpmon工具) 04_SOA的分析(纯属扯淡) 05_dtd讲解 06_schema ...

  7. java手工注入bean_java相关:Spring中如何动态注入Bean实例教程

    java相关:Spring中如何动态注入Bean实例教程 发布于 2020-3-8| 复制链接 摘记: 前言在Spring中提供了非常多的方式注入实例,但是由于在初始化顺序的不同,基于标注的注入方式, ...

  8. Java 使用Axis实现WebService实例

    在上一篇WebService实例中,基于jdk1.6以上的javax.jws 发布webservice接口.这篇博文则主要用eclipse/myeclipse 使用axis插件进行发布和调用WebSe ...

  9. java .net webservice_Java客户端调用.NET的WebService实例

    项目需要去调用.NET的WebSrevice,本身是Java,研究了半天,终于有些头绪,记下来. 1,新建.NET WebService.只在原方法上加上一个string类型的参数str [WebMe ...

最新文章

  1. EasyUI Pagination 分页的两种做法
  2. 编写精美的聊天界面(左边显示接收消息,右边显示发送消息)(项目已上传GitHub)
  3. Python3.7模块之re
  4. Spartacus同SAP Commerce Cloud交互的示意图
  5. HTML5学习笔记四: 列表, 块和布局
  6. 正式发布!Azure Functions OpenAPI Extension
  7. 博客堂怎么连个搜索功能都没有
  8. HTML元素参考手册 HTML Elements Reference
  9. Windows 7 SID 修改
  10. 【Python3网络爬虫开发实战】1.2.4-GeckoDriver的安装
  11. [VNC] 远程连接 Xfce4 桌面 tab 键不能自动补全
  12. linux中sudo命令_Linux中的Sudo命令
  13. 菜鸟学开店—电子称连接标签打印机
  14. 【三星笔试】给定一些汽油E,给定一段距离D,完成D这段距离...
  15. 在线Java/C++/C语言/Python/web网页编辑器(IDE)整理
  16. cad怎么设置线的粗细_CAD图纸线条粗细如何修改?CAD图纸线宽如何调整?
  17. 【剑指 Offe】11. 旋转数组的最小数字
  18. 在Java中构建响应式微服务系统——第三章 构建响应式微服务
  19. 测试人员花样甩锅技巧
  20. Vue.js + axios 实现excel下载

热门文章

  1. [转帖]FPGA开发工具汇总
  2. 微信开放平台unionID 的利用(app推广转化率的解决方案)
  3. 华为做raid5步骤_华为2288hV3服务器创建RAID步骤.docx
  4. DSP28335下程序提示低功耗模式
  5. Python:布尔表达式
  6. 收集的几个自定义的404页面的模板
  7. Jsp+mysql 制作留言板
  8. iOS上架App Store之Appuploader制作描述文件和证书
  9. 招银网络科技java一面面经
  10. mysql查询并计算单价,sql语句查询今年单价总金额