WebService技术入门

article/2025/10/6 3:50:39

    一、Webservice简介

             1、 WebService是一种跨编程语言和跨操作系统平台的远程调用技术。具有异构平台的互通性,软件的复用性等优点。

             2、WebService的三要素: 

       (1)SOAP(简单对象访问协议),基于HTTP协议,采用XML格式,用来传递信息的格式。

       (2)WSDL: 用来描述如何访问具体的服务。(相当于说明书)

       (3)UDDI: 用户自己可以按UDDI标准搭建UDDI服务器,用来管理,分发,查询WebService 。其他用户可以自己注册   发布WebService调用。

二、实现

                  1、在编写客户端代码时,需要先了解WSDL文件的基本信息。在所给的WebService访问地址的后面加上“?wsdl”,在 在浏览器中打开访问webservice接口的wsdl文件。需要了解wsdl文件的三个基本属性,在客户端编码时,需要用到这几个属性值。

                 

            2、 基于JDK开发的实现方式

               服务端的实现一般分为三步:

               (1)编写接口

public interface WeatherWS {public String getMsg(String CityName);
}

             (2)实现类(需要在实现类中加入注解@Webservice)

         

@WebService
public class WeatherWSImpl implements WeatherWs{@Overridepublic String getMsg(String CityName) {return "大阴天"+CityName;}
}

        (3)发布

public class AppWebService
{public static void main( String[] args ){Endpoint.publish("http://localhost:8080/webservice",new WeatherImpl());System.out.println("发布成功");}
}

     其中http://localhost:8080/webservice为发布地址,运行程序后,可用http://localhost:8080/webservice?wsdl访问,访问发布成功后的wsdl文件。

     客户端的实现步骤:(并未与上述的服务端配对,只是实现思路)

    (1)使用wsimport命令,根据服务端发布的地址在所建项目的src目录下,生成代码。

             在黑窗口切换到所建立客户端项目的src目录,再采用wsimport命令生成代码,操作如下图。

            

     (2)编写实现类

public class WeatherClient{public static void main(String[] args) {//1.创建服务类,wsdl文件的server属性。MobileCodeWS ms=new MobileCodeWS();//2.创建实现类对象,wsdl文件的端口类型属性。MobileCodeWSSoap port= ms.getPort(MobileCodeWSSoap.class);//3.获取实现方法,wsdl文件的端口类型属性里面的实现方法。String msg=port.getMobileCodeInfo("手机号码",null);System.out.println(msg);}
}

      另外,有些网络上发布的地址,在生成客户端代码时,会出现错误。例如http://www.webxml.com.cn/zh_cn/web_services.aspx  发布的天气预报,根据其wsdl文件生成代码时,会出现错误。

解决方法:把网络上的wsdl文件源码复制下来,在本地创建一个wsdl文件,然后用 <s:any minOccurs="2" maxOccurs="2" />替换掉<s:element ref="s:schema" /> <s:any /> 部分,再根据本地wsdl生成代码即可。

3、基于CXF的实现方式

    (1)CXF简介:Apache CXF ( CXF=celtix+Xfire的组合)是一个开源的 WebService 框架,CXF可以用来构建和开发           WebService,CXF 大大简化了WebService并且可以天然地和 Spring 进行无缝集成,核心是org.apache.cxf.Bus(总线)。

    (2)实现

      前提:需要下载CXF框架,并配置好CXF的环境变量,然后把CXF框架中的lib文件下的jar包添加到项目中(客户端和服务端端都一样)。

      服务端代码的编写一般分为三步:

      第一、编写接口

@WebService
public interface WeatherWS {public String getMsg(String CityName);
}

      第二、实现类

public class WeatherImpl implements WeatherWs{@Overridepublic String getMsg(String CityName) {return "大晴天"+CityName;}
}

  第三、发布

public class Weathermain{public static void main(String[] args) {JaxWsServerFactoryBean factoryBean=new JaxWsServerFactoryBean();//1.设置服务地址factoryBean.setAddress("http://localhost:8888/weather");//2.设置服务接口factoryBean.setServiceClass(WeatherWs.class);//3.设置服务实现类factoryBean.setServiceBean(new WeatherImpl());//通过工厂创建服务factoryBean.create();System.out.println("发布成功!");}
}

客户端的实现:(并未与上述的服务端配对,只是实现思路)

第一、类似于JDK的实现方式,通过 “wsdl2java  –d  .  wsdl文件” 命令,在src目录下生成代码。

第二、编写实现代码

public class test {public static void main(String[] args) {JaxWsProxyFactoryBean svr = new JaxWsProxyFactoryBean();//1、设置地址,在wsdl文件上有。svr.setAddress("http://localhost:8888/weather");//2.实现服务接口,为wsdl上端口类型属性svr.setServiceClass(Weatherdao.class);//3.创建实现对象Weatherdao wea=(Weatherdao)svr.create();//调用方法String Msg=wea.getMsg("海南");System.out.println("jname"+name);}
}

4、Sprintboot整合CXF实现Webservice

   (1)添加依赖(我在使用Springboot版本<version>2.2.1.RELEASE</version>,发生运行错误,可以使用<version>2.0.1.RELEASE</version>这个版本)

  <!--CXF依赖包,开发webservice--><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-transports-http</artifactId><version>3.1.11</version></dependency><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-rt-frontend-jaxws</artifactId><version>3.1.11</version></dependency>

  (2)编写代码

          服务端代码的编写:

         第一、编写接口

@WebService(targetNamespace="http://webservice_cxf.prior.prior/")
public interface WeatherWS{@WebMethodpublic @WebResult String WeatherMsg(@WebParam(CityNeme= "userName") String CityNeme);
}

        第二,实现类

@Component("WeatherImpl")
@WebService(serviceName="WeatherService",//【对外发布的服务名 】:需要见名知意targetNamespace="http://webservice_cxf.prior.prior/",//【名称空间】:【实现类包名的反缀】endpointInterface = "prior.prior.webservice_cxf.WeatherWs")//【服务接口全路径】  【接口的包名】
public class WeatherImpl implements WeatherWs{@Overridepublic String WeatherMsg(String CityName) {return "大阴天: " + CityName;}
}

    第三、发布

@Configuration//注册到spring启动中
public class CxfConfig {@Beanpublic ServletRegistrationBean dispatcherServlet() {return new ServletRegistrationBean(new CXFServlet(), "/cxf/*");// 发布服务名称 localhost:8080/cxf}@Bean(name = Bus.DEFAULT_BUS_ID)public SpringBus springBus() {return new SpringBus();}@Beanpublic Endpoint hello() {EndpointImpl endpoint = new EndpointImpl(springBus(), new WeatherImpl());// 绑定要发布的服务实现类endpoint.publish("/weather"); // 接口访问地址return endpoint;}
}

   客户端代码的编写:(并未与上述的服务端配对,只是实现思路)

   第一、根据CXF客户端生成代码的命令,生成客户端代码。

   第二、编写实现类

public class getPhoneAddress{public static String getPhoneMessage(String phone) {//1.生成服务对象MobileCodeWS ms=new MobileCodeWS();//2.创建实现类对象MobileCodeWSSoap port= ms.getPort(MobileCodeWSSoap.class);//3.获取实现方法String msg=port.getMobileCodeInfo("手机号",null);return msg;}

 


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

相关文章

WebService技术详解 (一)

WebService WebService简介 Web Service技术&#xff0c; 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件&#xff0c; 就可相互交换数据或集成。依据Web Service规范实施的应用之间&#xff0c; 无论它们所使用的语言、 平台或内部协议是什么&…

WebService技术详解

WebService简介 Web Service技术&#xff0c; 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件&#xff0c; 就可相互交换数据或集成。依据Web Service规范实施的应用之间&#xff0c; 无论它们所使用的语言、 平台或内部协议是什么&#xff0c; 都可…

信息系统项目管理师:Web Service技术篇

一、Web Service技术 Web Service是解决应用程序之间相互通信的一种技术。WebService是描述一系列操作的接口。它使用标准的、规范的XML描述接口。 Web Application是面向用户的&#xff0c;而Web Service面向的则是计算机。 Web Service模型&#xff1a;服务提供者、服务请求者…

WebService全面详解

目录 1. 什么是WebService 2. WebService的三要素 2.1 SOAP 2.1.1SOAP协议格式 2.1.2 SOAP1.1协议&#xff1a; 2.13 SOAP1.2 2.1.4 SOAP1.1和SOAP1.2区别 2.2 WSDL 2.3 UDDI 3. WebService开发规范 3.1 JAX-WS 3.2 JAXM&SAAJ 3.3 JAX-RS 4. WebService应用场…

jQuery来实现一个ajax实例

下面介绍使用jQuery来实现一个简单的ajax实例 主要的效果是使用ajax来实现书籍的价格随着书籍的数量变化&#xff0c;有一个增加按钮和一个减少按钮 jsp页面代码 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <…

jsp+ajax实例

下面介绍JSP前台表单内容通过Ajax异步提交到后台Servlet进行校验&#xff08;校验方式多种&#xff0c;包括提取数据库信息&#xff0c;校验用户名是否重复等&#xff09;&#xff0c;异步在JSP表单页面显示校验结果信息的基本过程。 一、说明&#xff1a; 1.由于本…

Ajax的简单实例

AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换&#xff0c;AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下&#xff0c;对网页的某部…

Ajax例子

Ajax实现无刷新三联动下拉框 1.html代码 < HTML > < HEAD > < title > Ajax实现无刷新三联动下拉框 </ title > < meta content "Microsoft Visual Studio .NET 7.1" name "GENERATOR" > < meta content "C#"…

javaweb+jQuery ajax实例

什么是ajax AJAX即“Asynchronous Javascript And XML”&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。 AJAX 异步 JavaScript和XML&#xff08;标准通用标记语言的子集&#xff09;。 AJAX 是一种用于创建快速动态网…

原生js的Ajax实例

与jQuery不同&#xff0c;原生js的ajax的实现相比来说复杂一些&#xff0c;因为jquery中的$.ajax()方法已经把js的实现封装起来&#xff0c;使用起来更加方便。但是&#xff0c;原生js的实现过程&#xff0c;对于理解ajax&#xff0c;好像更清晰一些。 之前写过的jQuery的ajax…

Ajax最简单实例(java)

总体介绍&#xff0c;不感兴趣的请跳过&#xff1a;以下内容是关于DWR来实现Ajax的方法。 一、 Ajax的介绍。 AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。 …

Ajax学习(二)—— 一个简单的Ajax实例

通过上篇博客认识Ajax之后,我们通过一个简单的实例来消化消化理论知识,一睹Ajax的庐山真面目。 1.实例功能: 当用户输入用户名,文本框失去焦点后,通过异步调用来判断该用户名是否已经存在。若存在,则在上图中红框处显示提示。当用户名可用时,提交按钮变为可用状态。 2.…

Ajax实例(JAVA)

这是一个用于留言板留言提交与读取的简单实例&#xff0c;不包括回复、编辑与删除等其它管理功能。 本实例的目的在于用一个简单的例子展示如果在java web应用中&#xff0c;用javascript开发Ajax应用。 一、web页面 msbord.jsp 1、本页面用于留言显示 2、本页面提供留言功能…

原生js实现Ajax实例讲解

Ajax简介 ajax 异步 JavaScript 和 XML。 ajax是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。我们知道&#xff0c;传统的网页&#xff08;不使用ajax&#xff09;如果需要更新内容&#xff0c;必须重新加载整个网页。Ajax的出现&#xff0c;使…

jsp ajax实例讲解

下面介绍JSP前台表单内容通过Ajax异步提交到后台Servlet进行校验&#xff08;校验方式多种&#xff0c;包括提取数据库信息&#xff0c;校验用户名是否重复等&#xff09;&#xff0c;异步在JSP表单页面显示校验结果信息的基本过程。 一、说明&#xff1a; 1.由于本…

jqueryajax实例

运用ajax结合dom写的小实例&#xff0c;其中记录了过程中遇到的问题和解决方法 任务要求&#xff1a; 模拟“请求用户列表”&#xff0c;向后台请求&#xff0c;后台会去数据库中将你的用户列表全部查出来&#xff0c;返回很多条记录&#xff0c;现在将记录显示在页面上用表格打…

Ajax简介和实例

目录 什么是 AJAX &#xff1f; AJAX实例 ajax-get无参 ajax-get有参 对象和查询字符串的互转 ajax-post ajax-post 表单 AJAX 是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。 什么是 AJAX &#xff1f; 菜鸟教程是这样介绍的&#xff1a…

Ajax实例讲解与技术原理

林炳文Evankaka原创作品。转载请注明出处http://blog.csdn.net/evankaka 摘要&#xff1a;AJAX即“Asynchronous Javascript And XML”&#xff08;异步JavaScript和XML&#xff09;&#xff0c;是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的…

jQuery的Ajax实例(附完整代码)

目录 写在前边什么是AjaxAjax基本结构实例实例1实例2 小结 写在前边 作为一个前端刚入门没多久的小白&#xff0c;想在这里分享一下我的学习内容&#xff0c;就算是学习笔记了。因为前端的大部分学习都是通过网站上的教程&#xff0c;所以遇到不懂得问题&#xff0c;也只有求助…

Ajax技术 实例篇

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 例如&#xff1a;本篇文章通过HtmlAjaxnode技术实现一个简单的Ajax请求案例&#xff0c;为加强对Ajax技术的了解和实操经验 实现效果 这是请求前的前端页面&#xff0c;点击两个Button按钮分别发起不…