WebService培训教程详解

article/2025/10/12 19:54:30

开发webservice

1. 概述

  • 开发手段:使用JDK开发(1.6及以上版本)使用CXF框架开发(工作中)
  • 组成:服务器端客户端

2. 使用JDK开发WebService

1).开发服务器端

  • Web Service编码:@WebService( SEI和SEI的实现类)@WebMethod(SEI中的所有方法)
  • 发布Web Service:Endpoint(终端, 发布webservice)

2). 开发客户端

  • 使用eclipse提供的web service浏览器访问查看对应的wsdl文档:…..?wsdl(一般浏览器)请求webService并查看请求和响应消息(webservice浏览器)
  • 创建客户端应用编码方式访问借助jdk的exe工具生成客户端代码:

wsimport -keep url   //url为wsdl文件的路径

  • 借助生成的代码编写请求代码

3. 监听请求: 使用Eclipse的TCP/IP工具

  1. 将服务器端的WSDL文档保存到客户端本地
  2. 修改文档: 将端口号从8989改为8080
  3. 根据本地的wsdl文档生成客户端代码, 并编写客户端的调用代码
  4. 配置eclipse的TCP/IP,启动监听

      5.执行客户端代码发送WebService请求

4. 调用免费的web service(天气预报)

  1. Google”免费WebService”, 找到提供天气预报Webservice的网络地址http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx
  2. 使用eclipse的web service浏览器访问
  3. 客户端编码方式访问借助命令工具自动生成客户端代码借助生成的代码编写请求代码

说明: 直接生成客户端代码会抛异常, 无法生成客户端代码, 解决办法:

1. 将对应的wsdl文档保存到本地

2. 修改wsdl文档的部分内容:

 <s:element ref=”s:schema” /><s:any /> 替换成 <s:any minOccurs=”2″ maxOccurs=”2″/>

备注: 这个是Java调用net的webservice都有的问题

5. 使用CXF开发web service

加入cxf的jar包即可,其它不需要改动

6. WebService请求深入分析

1). 分析WebService的WSDL文档结构

1.1). 实例截图

1.2). 文档结构

<definitions>

<types>

<schema>

<element>

</types>

<message>

<part>

</message>

<portType>

<operation>

<input>

<output>

</portType>

<binding>

<operation>

<input>

<output>

</binding>

<service>

<port>

<address>

</service>

</definitions>

1.3). 文档结构图

  • types– 数据类型(标签)定义的容器,里面使用schema定义了一些标签结构供message引用 
  • message– 通信消息的数据结构的抽象类型化定义。引用types中定义的标签
  • operation– 对服务中所支持的操作的抽象描述,一个operation描述了一个访问入口的请求消息与响应消息对。
  • portType– 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。
  • binding– 特定端口类型的具体协议和数据格式规范的绑定。
  • service– 相关服务访问点的集合
  • port– 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。

2). 测试CXF支持的数据类型

  1. 基本类型int,float,boolean等
  2. 引用类型String集合:数1组,List, Set, Map自定义类型   Student

3). 一次Web service请求的流程

一次web service请求的本质:

1) 浏览器向服务器端发送了一个soap消息(http请求+xml片断)

2) 服务器端处理完请求后, 向客户端返回一个soap消息

那么它的流程是怎样的呢?

7. CXF框架的深入使用

1).CXF的拦截器

1.1) 理解

  • 为什么设计拦截器?为了在webservice请求过程中,能动态操作请求和响应数据, CXF设计了拦截器.
  • 拦截器分类:
  • 按所处的位置分:服务器端拦截器,客户端拦截器
  • 按消息的方向分:入拦截器,出拦截器
  • 按定义者分:系统拦截器,自定义拦截器
  • 拦截器API

Interceptor(拦截器接口)

AbstractPhaseInterceptor(自定义拦截器从此继承)

LoggingInInterceptor(系统日志入拦截器类)

LoggingOutInterceptor(系统日志出拦截器类)

1.2) 编码实现拦截器

  • 使用日志拦截器,实现日志记录LoggingInInterceptorLoggingOutInterceptor
  • 使用自定义拦截器,实现用户名与密码的检验服务器端的in拦截器客户端的out拦截器xfzhang/123456

2). 用CXF编写基于spring的web service

2.1). 编码实现

  1. Server端创建spring的配置文件xml,在其中配置SEI在xml中,配置上CXF的一些核心组件
  2. Client端生成客户端代码创建客户端的spring配置文件beans-client.xml,并配置编写测试类请求web service

2.2). 添加自定义拦截器

  1. Server端在xml中,在endpoint中配置上入拦截器
  2. Client端通过Client对象设置出拦截器

8. 其它调用WebService的方式

1). Ajax调用webService

跨域请求问题:

1. 什么是跨域请求?

1. sina.com–=->baidu.com/xxx.jsp

2. localhost—-à192.168.42.165

2. 解决ajax跨域请求webservice的问题?

在客户端应用中使用java编码去请求webservice, 在页面中去请求自己的后台

2). Jquery调用WebService

3). HttpURLConnection调用WebService

9. 通过注解修改wsdl文档

1). JDK中的相关注解

1.1).  @WebService

l 作用在具体类上。而不是接口。

l 一个类只有添加了此注解才可以通过Endpoint发布为一个web服务。

l 一个添加了此注解的类,必须要至少包含一个实例方法。静态方法和final方法不能被发布为服务方法。

l WebService注解包含以下参数:

1.2).  @WebMethod

l 此注解用在方法上,用于修改对外暴露的方法。

1.3).  @WebResult

用于定制返回值到WSDL的映射

1.4).  @WebParam 

用于定义WSDL中的参数映射

1.5).  @XmlElement 

用于定义实体类的属性到WSDL中的映射(get/set方法上)

2). 说明

即使是没有修改源代码,只修改了注解,客户端的代码也必须要重新生成, 否则调用将会失败。

文章转载链接:http://www.atguigu.com/jsfx/1583.html


http://chatgpt.dhexx.cn/article/P6uGmG8p.shtml

相关文章

SoapUI测试webservice接口

方法1、导入wsdl文件 输入参数&#xff0c;点击运行&#xff0c;看到响应结果 方法2、输入wsdl地址 项目名随便起一个&#xff0c;Initial WSDL直接输入wsdl地址&#xff0c;确定即可。

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

课程目录&#xff1a;01_webservice快速实例 02_wsimport的使用 03_wsdl和soap讲解(介入了tcpmon工具) 04_SOA的分析(纯属扯淡) 05_dtd讲解 06_schema的命名空间 07_schema的元素和属性的定义 08_schema的语法和建议的编写方式 09_使用jaxb完成对象和xml的转换 10_Stax的基本操…

.Net WebService简单学习

一、什么是WebService Web Service是一个使用开放的XML&#xff08;标准通用标记语言下的一个子集&#xff09;标准来描述、发布、发现、协调和配置这些应用程序&#xff0c;用于开发分布式的交互操作的应用程序。 Web Service技术&#xff0c; 能使得运行在不同机器上的不同应…

java webservice 入门教程_WebService入门实例教程

什么是WebService 通过使用WebService&#xff0c;您的应用程序可以向全世界发布信息&#xff0c;或提供某项功能&#xff0c;它是基于Web的服务&#xff0c;通过Web进行发布、查找和使用。 WebService脚本平台需支持XMLHTTP。 HTTP协议是最常用的因特网协议。 XML提供了一种可…

idea使用xfire方式发布webservice教程

近日在熟悉webservice发布的过程&#xff0c;此处主要讲解xfire方式。 1.使用idea新建一个web项目 步骤1&#xff1a; 按照图中的指定序号建立对应的web项目即可。 步骤2&#xff1a; 填写组织ID和具体项目id&#xff0c;点击进行“下一步”即可。 步骤3&#xff1a; 设置相…

java发布webService服务教程

发布webService服务并使用soap UI测试 发布简单的webService服务同时发布多个webService接口使用SoapUI测试webService接口下载SoapUI并安装打开WSDL文件测试文件上传 示例源码 发布简单的webService服务 新建一个Maven项目pom引入 webService需要的依赖 <dependency>&…

WebService 教程(包含项目实践)

情景引入&#xff1a; 时间&#xff1a;早晨 8 : 00 am 小白&#xff1a;起床起床&#xff0c;&#xff0c;&#xff0c;公司又来需求了&#xff0c;你还在睡觉&#xff0c;快点起来~&#xff01; 我&#xff1a;大惊小怪&#xff0c;又怎么了呢&#xff1f;小白&#xff0c…

最详细的idea创建webservice教程

最详细的idea创建webservice教程 创建服务端 File->New Project 点击next&#xff0c;会自动生成demo将要发布的类加上WebService&#xff0c;方法加上WebMethod&#xff0c;设置服务发布address WebService() public class HelloWorld {WebMethodpublic String sayHello…

WebService简单入门

1. JAX-WS发布WebService 创建web工程 创建simple包&#xff0c;和server、client两个子包。正常情况下server和client应该是两个项目&#xff0c;这里我们只是演示效果&#xff0c;所以简化写到一个项目中&#xff1a; 1.1 创建服务类Server package simple.server;import ja…

WebService教程实例

一、准备工作 1、Myeclipse 2014 2、jdk8.0 二、创建服务端 1、创建【Web Service Project】&#xff0c;命名为【TheService】。 2、创建【Class】类&#xff0c;命名为【ServiceHello】&#xff0c;位于【com.hyan.service】包下。 3、编写供客户端调用的方法&#xff0c;即编…

Java小白翻身 - webservice教程2

来一个HelloWorld&#xff0c;SpringBoot发布WebService可简单啦。 1、搭建项目2、配置pom.xml3、建services服务包4、登陆接口类5、登陆接口实现类6、创建CXF配置类7、Parameter 0 of method errorPageCustomizer in ErrorMvcAutoConfiguration 异常解决8、访问webservice9、…

idea2021创建webservice教程

一、创建服务端 1、创建一个新的java工程 2、工程项目右键添加框架依赖 3、选择webservices 4、点击确定完成创建。创建后项目会添加相关依赖。以及测试服务类。 5、代码介绍 // 添加WebService注解 WebService() public class HelloWorld {// 方法添加WebMethod注解W…

WebService教程

最近在学习WebService&#xff0c;今天尝试用Eclipse的插件生成JAX-WS WebService&#xff0c;结果遇到了不少的问题啊&#xff0c;调试了大半天终于把程序跑通了。现在把步骤和问题记录一下&#xff0c;也为了以后遇到相同的问题时能够及时解决。首先利用Eclipse生成WebServic…

WebService入门教程(服务端发布WebService)

本篇内容过多&#xff0c;时间紧迫的朋友可以通过目录快速筛选自己想要看的内容&#xff0c;本人接触webservice也没多久&#xff0c;也处于学习阶段&#xff0c;如果有错误请指正&#xff0c;如果已经是大神请略过这篇文章&#xff0c;这篇文章不涉及webservice的底层原理&…

WebService最详细教程

WebService相关概念 基础概念 WebService是一种跨编程语言和跨操作系统平台的远程调用技术,就是说服务端程序采用java编写&#xff0c;客户端程序则可以采用其他编程语言编写&#xff0c;反之亦然&#xff01;跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统…

webSerivce简明使用教程

茫茫人海千千万万&#xff0c;感谢这一秒你看到这里。希望我的文章对你的有所帮助&#xff01; 愿你在未来的日子&#xff0c;保持热爱&#xff0c;奔赴山海&#xff01; &#x1f440; 前言 因为前段时间&#xff0c;需要使用到webService来调用公司的其他系统api接口&#x…

WebService详细讲解

1 学习目标2 webservice 基本概念 2.1 什么是web服务2.2 简介2.3 术语 2.3.1 webservice开发规范2.3.2 SOAP 协议2.3.3 wsdl说明书2.3.4 UDDI2.4 应用场景2.5 优缺点 2.5.1 优点&#xff1a;2.5.2 缺点&#xff1a;2.6 面向服务架构SOA3 ApacheCXF 框架介绍 3.1…

11步教你入门webservice

新建立一个javaWeb项目&#xff0c;一个java类&#xff0c;如图&#xff1a; 1.具体很简单 首先要创建一个web工程 2、接下来我们就要将项目中的TestService的这个类生成WebService服务端&#xff0c;选择new Web Service&#xff0c;如图&#xff1a; 3 4.Next,选择jav…

php 实现分页功能(class封装了功能)

前言 分页是一个很常见的功能&#xff0c;我这里提供了分类类(class)&#xff0c;用于前端页面中的四个按钮&#xff1a; 首页下一页上一页尾页 上面的演示非常不直观&#xff0c;但足可以证明这个类可以完成分页功能。 完整的代码 附有非常详细的注释&#xff0c;但需要有…

PHP分页技术详解

直接上代码&#xff0c;注释很详细了。 <?php /** * php分页技术详解 * author jahng */header("Content-type: text/html; charsetUTF-8");echo<link rel"stylesheet" type"text/css" href"css.css" media"all" /&g…