一. 开发服务

新建maven的web项目就可以了,

1.新建一个web服务

2.服务名称定义

3.更改配置

4.默认建好的服务文件

5.增加一个add的服务

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;/**** @author Administrator*/
@WebService(serviceName = "CalculatorWS")
public class CalculatorWS {/*** This is a sample web service operation*/@WebMethod(operationName = "hello")public String hello(@WebParam(name = "name") String txt) {return "Hello " + txt + " !";}@WebMethod(operationName = "add")public int add(@WebParam(name = "name") int i,int j) {return i+j;}
}

6.启动配置

如果您使用的是 Tomcat Web 服务器,则没有测试客户端。您只能运行项目并查看 Tomcat Web 服务页是否打开。
此时,在运行项目之前,您需要将 Web 服务作为您的应用程序的入口点。要使 Web 服务成为应用程序的入口点,请右键单击 "CalculatorWSApplication" 项目节点,然后选择 "Properties"(属性)。
打开 "Run"(运行)属性,然后在 "Relative URL"(相对 URL)字段中键入 /CalculatorWS。单击 "OK"(确定)。
要运行项目,请再次右键单击项目节点,然后选择 "Run"(运行)。

7.服务的接口信息

wsdl信息

二.调用服务

新建一个maven的web项目

1.新建web服务客户端

2.选择WSDL

选择 "Project"(项目)作为 WSDL 源,然后单击 "Browse"(浏览)以打开 "Browse Web Services"(浏览 Web 服务)对话框。
在 "CalculatorWSApplication" 项目中选择 "CalculatorWS" Web 服务。单击 "OK"(确定)关闭 "Browse Web Services"(浏览 Web 服务)对话框。

在新建 Web 服务客户端向导中确认包名为空,并保留其他设置的默认值。
注意:请勿选择包名。将此字段保留为空。
单击 "Finish"(完成)。

3.调用服务

新建第一个Rpc.java的类文件

在源代码编辑器中将 add 节点拖至对应的方法里,需要适当修改。
也可以在编辑器中单击鼠标右键,然后选择 "Insert Code"(插入代码)> "Call Web Service Operation"(调用 Web 服务操作),而无需拖动 add 节点。

注意:不可以拖到selvlet里,需要写在java的普通class里。

4.在ClientServlet中调用Rpc.java的add方法。

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");try (PrintWriter out = response.getWriter()) {/* TODO output your page here. You may use following sample code. */out.println("<!DOCTYPE html>");out.println("<html>");out.println("<head>");out.println("<title>Servlet ClientServlet</title>");            out.println("</head>");out.println("<body>");out.println("<h1>Servlet ClientServlet at " + request.getContextPath() + "</h1>");Rpc r=new Rpc();out.println(r.add(1, 2));out.println("</body>");out.println("</html>");}}

5.从浏览器输出数据看到成功调用到了WebService

三.查看数据包

1.先get请求wsdl

2.再post请求

3.返回的数据

完整的数据交互过程参考:java 实现WebService 以及不同的调用方式

参考:

JAX-WS Web 服务入门指南

REST 风格的 Web 服务入门指南

Web Service 那点事儿(1)

JAX-WS Web 服务开发调用和数据传输分析相关推荐

  1. resteasy 客户端java_RestEasy Web服务客户端调用

    RestEasy Web服务客户端调用 l 背景 在前几篇文章中,我介绍了用RestEasy 框架搭建的Rest风格的java web服务.这几天事情比较多,一直没有写客户端的调用方法.现在就谈一下客 ...

  2. 《大规模Web服务开发技术》

    Web 服务开发的心灵鸡汤 周末去上海陪妹子的两天在路途上看完了这本<大规模 Web 服务开发技术>. <大规模 Web 服务开发技术>是日本的 Hetena 团队以夏天举办的 ...

  3. 干净架构在 Web 服务开发中的实践

    干净架构(The Clean Architecture)是 Bob 大叔在 2012 年的一篇博文 The Clean Architecture 中,提出的一种适用于复杂业务系统的软件架构方式.干净架 ...

  4. 学历学籍系统-Web服务开发实验(REST API)

    目录 1 项目简介 1.1 分工 2 开发环境 2.1 框架搭建 2.2 数据库建表(Resuorce) 2.2.1 用户信息user表 2.2.2 学生学历/学籍信息student_graduate ...

  5. ajax调用第三方web服务,js调用soapWebService服务

    js调用soapWebService服务 什么是 SOAP? SOAP 指简易对象访问协议 SOAP 是一种通信协议 SOAP 用于应用程序之间的通信 SOAP 是一种用于发送消息的格式 SOAP 被 ...

  6. C#动态调用web服务 远程调用技术WebService

    一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...

  7. 使用ASP.Net 3.5 的Ajax与Web服务开发实例

    本文继续介绍使用ASP.NET3.5中的AJAX环境中如何从客户端JavaScript调用Web服务方法.编写本文的目的在于让大家深刻了解基于ASP.Net3.5的Ajax和Web的服务,虽然例子比较 ...

  8. python——Web服务开发(二)分布式缓存

    上一篇博客写了flask模块实现web服务搭建的基本方法以及简单的缓存功能,但是这种缓存随着服务重启便会丢失,也无法满足多个服务共享缓存的需求,因此,我们通过redis来实现web服务的分布式缓存. ...

  9. 软件设计与体系结构第三次实验——web服务开发

    目录 一.后端 二.前端 三.运行结果 概述:本次实验中我们选择使用实现REST API,在web上实现登录.签到以及查询签到结果的功能. 一.后端 本次实验在第二次实验(设计模式)的基础上进行了极大 ...

最新文章

  1. css定位页面元素,页面元素定位-CSS元素基本定位
  2. 两个函数式解决大数相加的方法
  3. 【NLP】从头开始学词向量的预训练
  4. Flsak爱家租房--订单(获取用户订单、用户评论)
  5. 关于在Android中访问和使用到上下文变量
  6. 卷积滤波 英文_图像处理必备英文词汇
  7. 前后端分离的思考与实践(六)
  8. Hive最全学习笔记总结
  9. 安装 Silverlight 5/silverlight4 出错的解决方法
  10. 万用表二极管档和三极管档的使用
  11. git两个分支代码合并
  12. random.shuffle(lst)
  13. GIC/ITS代码分析(1)MADT表
  14. BUUCTF Misc 被劫持的神秘礼物
  15. 程序员数学(9)--不等式与不等式组
  16. 进程通信概念和进程通信方式
  17. 【Java学习笔记】1:Java语言基础
  18. java往字符串数组追加新数据
  19. 什么是“与尺度无关的”变量
  20. 开源测试框架-UI自动化测试工具Selenium的安装与常用操作-Java语言

热门文章

  1. ryu和mysql实现控制_openflow的初步认识及RYU控制器实践
  2. Android系统的命令行操作及C程序编译
  3. Linux下视频截取命令
  4. 【神经网络】(2) 网络优化,案例:服装图像分类,附python完整代码
  5. Linux gcc 制作动/静态链接库
  6. 一、迁移学习与fine-tuning有什么区别?
  7. 从零开始的ROS四轴机械臂控制-目录
  8. 【从零开始的ROS四轴机械臂控制】(一)- 实际模型制作、Solidworks文件转urdf与rviz仿真
  9. Python爬虫2-GET_POST与开发者工具
  10. 系统crash无法启动 tpm error / could not read size 0x8000000e