WebService技术,服务端and客户端JDK-wsimport工具(一)
使用webservice服务,需要了解几个名词:soap 简单对象协议、http+xml 、 WSDL
先看下代码结构:

服务端代码与客户端代码分别处于两不同的包中
一、服务端内容
服务端:
@WebService注解,表明这个一个对外提供为webservice的服务类。
@WebMethod注解,表明这是webservice中的一个可以调用的方法。
还可以设置其他注解,(注解会在wsdl文档中体现出来)。
WebServiceImp.java代码:
package com.webservice; import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class WebServiceImp {
@WebMethod
public String getInfo(String id){
String info="";
if (id.equals("1")) {
info="张三";
}else if (id.equals("2")) {
info="李四";
}else if(id.equals("3")){
info="王五";
}else if(id.equals("4")) {
info="赵六";
}else {
info="用户不存在";
}
return info;
}
public static void main(String[] args) {
Endpoint.publish("http://127.0.0.1:8080/WebService", new WebServiceImp());
}
}
1、 在main方法中使用 Endpoint.publish(url,object)来发布wsdl.代码中发布webservice的地址是:http://127.0.0.1:8080/WebService,把地址复制到浏览器地址栏我们在后面加上?wsdl,可以看到如下内容:

2、此时证明webservice已经发布成功。
发布成功后,使用软件测试,是否请求访问得到结果。此处使用SoapUI Pro ,图形化界面,容易测试,新建项目,项目名称随意,inital wsdl:填入在代码生成的地址
(http://127.0.0.1:8080/WebService?wsdl)。填入参数,点击绿色的三角形发送请求,右边出现拿到结果,说明此webservice是可用的,至此,服务端完成。

二、客户端内容
1、使用jdk自带的工具,能够生成客户端代码。找到安装JDK的bin目录,就可以看到所使用的工具

wsimport的常用命令有:

3、看到已经生成了java和class文件,回到开发工具刷新一下,可以看到刚才生成的Java文件,

4、看wsdl文档的时候,最好是从下往上看,这样会比较清晰一点。wsimport根据wsdl文档内容生成代码,使用生成的代码,编写客户端代码,新建一个MyClient.java
package webservice;
public class WebClient {
public static void main(String[] args) {
ServiceIntService serviceIntService=new ServiceIntService();
ServiceInt ServiceInt =serviceIntService.getServiceIntPort();
System.out.println(ServiceInt.getInfo("1"));
System.out.println(ServiceInt.getInfo("2"));
System.out.println(ServiceInt.getInfo("4"));
System.out.println(ServiceInt.getInfo("100"));
}
}

5、运行MyClient,看到调用服务端的提供的服务,返回结果。

WebService技术,服务端and客户端JDK-wsimport工具(一)的更多相关文章
- WebService从服务端到客户端的用例
1.首先编写Wsdl(基于契约优先的方式),要注意的是命名空间(若是使用include或import)最好使用一致的,代码如下: <?xml version="1.0" en ...
- spring mvc + mybaties + mysql 完美整合cxf 实现webservice接口 (服务端、客户端)
spring-3.1.2.cxf-3.1.3.mybaties.mysql 整合实现webservice需要的完整jar文件 地址:http://download.csdn.net/detail/xu ...
- myeclipse-建立webservice服务端和客户端
一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...
- JAX-WS服务端及客户端
一.概述 Java API for XML Web Services (JAX-WS)是Java程序设计语言一个用来创建Web服务的API. 在服务器端,用户只需要通过Java语言定义远程调用所需要实 ...
- 使用Apache CXF开发WebServices服务端、客户端
在前一篇的博客中,我使用Xfire1.x来开发了WebServies的服务端. 但是如果你访问Apache的官网,可以看到xfire已经被合并了. 最新的框架叫做CXF. Apache CXF = C ...
- C# 编写WCF简单的服务端与客户端
http://www.wxzzz.com/1860.html Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Win ...
- WebService-03-使用CXF开发服务端和客户端
写在前面的话 前面两节说了使用Java提供的包开发服务端和客户端,现在使用CXF来开发,CXF提供了两个类发而服务,一个是ServerFactoryBean,另一个是JaxWsServerFactor ...
- 一些java考过的测试题和自己制作模拟服务端和客户端
媒体 1,java环境变量: PATH: .;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; CLASSPATH: .;%JAVA_HOME%\jre\lib\rt.jar ...
- Java的oauth2.0 服务端与客户端的实现
oauth原理简述 oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装.我们做Java web项目想要实现oauth协议进行资源授权访问,直 ...
- vertx 从Tcp服务端和客户端开始翻译
写TCP 服务器和客户端 vert.x能够使你很容易写出非阻塞的TCP客户端和服务器 创建一个TCP服务 最简单的创建TCP服务的方法是使用默认的配置:如下 NetServer server = ve ...
随机推荐
- SELECT查询结果集INSERT到数据表
简介 将查询语句查询的结果集作为数据插入到数据表中. 一.通过INSERT SELECT语句形式向表中添加数据 例如,创建一张新表AddressList来存储班级学生的通讯录信息,然后这些信息恰好存在 ...
- HTML5学习资料
HTML5 的一些经典demo收集 Animated Books with CSS 3D Transforms 这是一个3D书本,CSS3完成 =========HTML5特效聚集网站======== ...
- .net 页面传参方式总结
一.使用Querystring Querystring是一种非常简单的传值方式,其缺点就是:安全性低.会把要传送的值显示在浏览器的地址栏中(也就是不需要保密得参数),并且在此方法中不能够传递对象,参数 ...
- C# 泛型约束 xxx<T> Where T:约束(一)
泛型约束 代码举例 发现我们游戏的代码中,主程写了很多类似这样的代码: public static T CreateObject<T>(out int objectId) where T ...
- 微信小程序里解决app.js onLaunch事件与小程序页面的onLoad加载前后异常问题
使用 Promise 解决小程序页面因为需要app.js onLaunch 参数导致的请求失败 app.js onLaunch 的代码 "use strict"; Object.d ...
- 【未完成】[Spark SQL_2] 在 IDEA 中编写 Spark SQL 程序
0. 说明 在 IDEA 中编写 Spark SQL 程序,分别编写 Java 程序 & Scala 程序 1. 编写 Java 程序 待补充 2. 编写 Scala 程序 待补充
- Mybatis 学习笔记
可学习渠道 MYBATIS 入门教程 1. Mybatis 介绍 Mybatis 是 sqlmap 技术,对 JDBC 进行封装,将大量的 SQL 语句外部化. 平时我们都用JDBC访问数据库,除了 ...
- Emmm,从删库到跑路系列之.......Root权限的重要性
中午导入了一个.SQL文件,晚上查navicat的数据库死活打不开 错误代码1030,想起来中午导入了mysql数据库的user表,而那里面什么也没有... 默默删掉了data,然后emmm --in ...
- DeepWalk学习
DeepWalk Background 使用机器学习的算法解决问题需要有大量的信息,但是现实世界中的网络中的信息往往比较少,这就导致传统机器学习算法不能在网络中广泛使用. (Ps: 传统机器学习分类问 ...
- DFS的运用(二分图判定、无向图的割顶和桥,双连通分量,有向图的强连通分量)
一.dfs框架: vector<int>G[maxn]; //存图 int vis[maxn]; //节点访问标记 void dfs(int u) { vis[u] = ; PREVISI ...