webservice学习随笔(一):简单的webservice实例
一、webService概念简单介绍:
简单来说,webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
二、实例代码(本实例中不需要导任何jar包,jdk自带包)
新建个java项目(创建java项目可参考:创建一个简单的java项目 )

创建一个接口WebService,一个实现WebServiceImpl,一个主程序WebServicePublish,
package service;
import javax.jws.WebMethod;
public interface WebService {
@WebMethod
public String sayHello(String name);
}
package service; @javax.jws.WebService
public class WebServiceImpl implements WebService { @Override
public String sayHello(String name) {
String returnStr = name + ",你好";
return returnStr;
} }
package service;
import javax.xml.ws.Endpoint;
public class WebServicePublish {
public static void main(String[] args) {
String address="http://localhost:8989/WS_Server/WebService";
Endpoint.publish(address,new WebServiceImpl());
System.out.println("发布成功....");
}
}
注意:一定要注意接口和实现的注解!!!
创建完成后,我们启动主程序,在控制台可以看到 发布成功

然后我们在浏览器访问我们定义的address,记得末尾要加?wsdl

这时候说明服务端服务已经发布成功了,接下来我们创建客户端调用接口
同样,新建一个java项目

接下来这块要注意了,我们打开dos窗口,也就是win+r , 执行cmd

在dos窗口中输入wsimport -s 我们这个项目的src路径 -keep 我们发布的webservice地址
回车后,我们刷新下项目,会发现项目中多了很多自动生成的代码

这时候,我们就可以创建客户端主程序,来调用服务端服务了

package service;
public class WSClient {
public static void main(String[] args) {
WebServiceImplService factory=new WebServiceImplService();
WebServiceImpl wsImpl = factory.getWebServiceImplPort();
String sayHello = wsImpl.sayHello("张三");
System.out.println("调用webservice服务的结果是:"+sayHello);
}
}
运行主程序后,我们可以在控制台可以看到,

说明我们本次webservice服务发布调用成功
webservice学习随笔(一):简单的webservice实例的更多相关文章
- WebService学习--(三)使用JDK开发WebService
一.WebService的开发手段 使用Java开发WebService时可以使用以下两种开发手段 1. 使用JDK开发(1.6及以上版本) 2.使用CXF框架开发(工作中) 二.使用JDK开发Web ...
- [置顶]
WebService学习总结(1)——WebService相关概念
一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...
- WebService学习总结(6)——WebService常用接口
商业和贸易:1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSer ...
- Axis2 webservice入门--写个简单的webservice
上一篇介绍了webservice开发前的准备.下面开始写webservice.如果不了解axis2请看上一篇,如果是新手:建议一边看一边写代码,自己动手完成这个过程. 一.新建一个web项目 二.新建 ...
- WebService学习总结(5)——WebService常见开发框架比较
在SOA领域,我们认为Web Service是SOA体系的构建单元(building block).对于服务开发人员来说,AXIS和CXF一定都不会陌生.这两个产品都是Apache孵化器下面的Web ...
- WebService学习总结(2)——WebService是什么?
一.WebService是什么? 1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 2. 一个跨语言.跨平台的规范(抽象) 3. 多个跨平台.跨语言的应用间通信整合的方案(实际 ...
- webservice学习总结(一)-- WebService相关概念介绍
一.WebService是什么? 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据) 一个跨语言.跨平台的规范(抽象) 多个跨平台.跨语言的应用间通信整合的方案(实际) 二.为什么要用 ...
- JMS学习二(简单的ActiveMQ实例)
下载安装ActiveMQ服务,下载地址当然可以去官网下载 http://activemq.apache.org/download-archives.html ActiveMQ安装很简单,下载解压后到b ...
- linux 学习随笔-shell简单编写
脚本最好都放在/usr/local/sbin中 脚本的执行 sh -x 脚本.sh -x可以查看执行过程 1在脚本中使用变量 使用变量的时候,需要使用$符号: #!/bin/bash ##把命令赋 ...
- 利用Java编写简单的WebService实例-转载
使用Axis编写WebService比较简单,就我的理解,WebService的实现代码和编写Java代码其实没有什么区别,主要是将哪些Java类发布为WebService.下面是一个从编写测试例子到 ...
随机推荐
- 2019-2020-1 20199318《Linux内核原理与分析》第八周作业
第7章 可执行程序工作原理 一.学习笔记 1.ELF 2.程序编译 3.连接与库 二.试验记录 1.开始先更新内核,再用test_exec.c将test.c覆盖掉 2.test.c文件中增加了exec ...
- SqlServer中 Partition By 的使用( 对多行数据分组后排序取每个产品的第一行数据)
1:数据库表结构: (产品图片表) select * from product_imgs 2:应用场景: 可见表中每一个产品(pro_id)可能对应多个图片(img),我想要按照添加时间的先后顺序,获 ...
- 谈谈 Redis 的过期策略
在日常开发中,我们使用 Redis 存储 key 时通常会设置一个过期时间,但是 Redis 是怎么删除过期的 key,而且 Redis 是单线程的,删除 key 会不会造成阻塞.要搞清楚这些,就要了 ...
- curl 命令工具
curl工具 简介 curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP, FTPS,HTTP, HTTPS, GOPHER, TELNET, DICT, FILE及LDAP等协议. ...
- spring jdbcTemplate 配置
1 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 2 d ...
- pytorch学习笔记(8)--搭建简单的神经网络以及Sequential的使用
1.神经网络图 输入图像是3通道的32×32的,先后经过卷积层(5×5的卷积核).最大池化层(2×2的池化核).卷积层(5×5的卷积核).最大池化层(2×2的池化核).卷积层(5×5的卷积核).最大池 ...
- python中,元组,列表,字典,字符串的相互转换
#author:RXS002 #1.字典 dict = {'name':'Zara','age':7,'class':'First'} #字典转换为字符串,返回:<type 'str'> ...
- Morris遍历以及Morris前序中序后序遍历实现
#include<iostream> using namespace std; struct TreeNode{ int val; TreeNode* right; TreeNode* l ...
- RN 使用react-navigation写可以滚动的横向导航条
在react-native中写横向导航条,首选肯定是react-navigation的createMaterialTopTabNavigator,附上官方文档链接.https://reactnavig ...
- 出现SocketTimeoutException后一直无法在连接服务器
在做接入sdk功能的时候,经常出现一个问题,内网向外网服务器建立连接并发送数据经常会报SocketTimeoutException这个错误,且一旦出现便大几率再也连不上了.修改之前的代码为: publ ...