WebService-01-使用jdk发布第一个WebService服务并调用
Webservice是SOAP+XML,SOAP是基于Http的,Http底层是Socket,先回顾一下Socket:
Server:
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(6789);
while(true){
Socket s = ss.accept();
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String str = br.readLine();
System.err.println("收到客户端消息:"+str);
br.close();
is.close();
s.close();
}
}
}
Client:
public class Client {
public static void main(String[] args) throws Exception {
Socket s = new Socket("172.28.12.128",6789);
OutputStream os = s.getOutputStream();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
bw.write("吃饭了某");
bw.close();
os.close();
s.close();
}
}
++++++++++++++++++++++分割线+++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

WebService用的是SOAP协议:


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
使用jdk发布第一个WebService服务并调用

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1,发布代码,新建java项目WS_01
package com.lhy.ws; import javax.jws.WebService;
import javax.xml.ws.Endpoint; /**
* @WebService:将 Java 类标记为实现 Web Service,或者将 Java 接口标记为定义 Web Service 接口。
*/
@WebService
public class HelloService { public String sayHello(String name){
return "Hello "+name;
} public String sayByeBye(String name){
return "Bye bye "+name;
} public static void main(String[] args) {
/**
* 参数1:服务的发布地址
* 参数2:服务的实现者
* publish 会新启动一个线程
*/
Endpoint.publish("http://127.0.0.1:8889/hello", new HelloService()); System.err.println("publish是新开的线程监听客户端请求,所以这里能够输出");
}
}
2,查看WSDL:WSDL-说明服务在哪里,如何调用,其实就是一个使用说明书
浏览器输入 http://127.0.0.1:8889/hello?wsdl

3,调用,wsimport命令生成客户端代码

这个命令为什么能执行?和java、javac一样,jdk/bin目录下有这个命令,只要配置了环境变量就能执行

找一个目录E:\杂项\WebService\client_code 在这里生成客户端代码
-s . 指定代码生成在当前目录,也可以自定义包名,加上参数 -p com.xxxx

生成的代码:

新建java项目,把客户端.java代码copy到项目

测试类APP:
package com.lhy.ws; /**
* 通过wsimport生成客户端代码调用WebService服务
*/
public class App { public static void main(String[] args) { /**
* WSDL:
* <service name="HelloServiceService">
*/
HelloServiceService hss = new HelloServiceService(); /**
* WSDL:
* <port name="HelloServicePort" binding="tns:HelloServicePortBinding">
*/
HelloService hs = hss.getHelloServicePort(); String result = hs.sayHello("NB"); System.err.println(result);
//com.sun.proxy.$Proxy32 JDK动态代理生成的代理类
System.err.println(hs.getClass().getName()); }
}
http://www.webxml.com.cn 这个网站上有一些免费的服务可以调用,下边调用一下手机卡信息的服务

wsimport生成客户端代码

照着wsdl写代码:
public class MobileApp {
public static void main(String[] args) {
MobileCodeWS mobileCodeWS = new MobileCodeWS();
MobileCodeWSSoap mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();
String result = mobileCodeWSSoap.getMobileCodeInfo("xxxxxxxx", "");
System.err.println(result);
}
}

WebService-01-使用jdk发布第一个WebService服务并调用的更多相关文章
- (二)发布第一个WebService服务与DSWL文档解析
1. 编写接口 package service; import javax.jws.WebService; /** * 第一个webservice服务, * @WebService注解表示这是一个we ...
- WebService学习之旅(五)基于Apache Axis2发布第一个WebService
上篇博文介绍了如何將axis2 webservice引擎安装到Web容器中,本节开始介绍如何基于apache axis2发布第一个简单的WebService. 一.WebService服务端发布步骤 ...
- (一)CXF之发布第一个WebService服务
一.CXF入门 1.1 前提 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS .这些 ...
- 05.使用jdk发布webservice服务
无论服务端是用什么写的,使用框架写的还是用jdk写的,它都会发布出来这样一个东西.主要你遵循咱们这七个步骤来走就可以调用了. 咱们现在转换一下角色,自己发布一个服务让别人去调.怎么来发布一个服务? 我 ...
- 【Web学习日记】——在IIS上发布一个WebService
没有开发过程,只是发布过程 一.前提 开发使用的是VS2013 从来没有做过Web的发布,在网上找例子,看到的总是与自己的情况不相符,而且也有人提出了VS2013发布网站的问题,但解决方案却很少,好不 ...
- 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)
首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
- So easy Webservice 6.使用EndPoint发布webservice服务
创建第一个Web服务: @WebService // 添加了此注解,代表是一个WebService public class HelloWorld { // 非 static final privat ...
- Spring整合CXF,发布RSETful 风格WebService(转)
Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...
随机推荐
- CodeForces 611C New Year and Domino (动态规划,DP)
题意:给定一个h*w的网格,里面只有.和#,.表示空的,#表示禁止的,然后有q个询问,询问中给你两个坐标,分别是左上和右下,求在这两者中间的有多少种(竖着和横着)两个相邻的点. 析:一看到这个题目,肯 ...
- Kolakoski
Kolakoski序列:我们知道的还是太少 上帝创造了整数,其余的则是我们人类的事了.正因为如此,质数.完全数.Fibonacci 数之类的数列才会让数学家们如痴如醉,因为它们的存在是如此自然,没有任 ...
- PHP数据库抽象层--PDO(PHP Data Object) [一]
1.简介:(PDO数据库访问抽象层,统一各种 数据库的访问接口 ) PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库 ...
- 201709011工作日记--Volley源码详解(三)
1. RequestQueue类 我们使用 Volley 的时候创建一个 request 然后把它丢到 RequestQueue 中就可以了.那么来看 RequestQueue 的构造方法,含有四个参 ...
- 字符串转换成NSDate类型的 为nil解决方法
方法一 通过下列函数来解决 但是得到的日期会改变 修改方法fix - (NSDate *)timeForString:(NSString *)string { NSMut ...
- Robotframework 简介及工作原理
下面通过官网和网上资料来简单介绍下Robotframework及其工作原理. 官方说明: Robot Framework is a generic test automation framework ...
- hdu 5015 233矩阵快速幂
http://acm.hdu.edu.cn/showproblem.php?pid=5015 需要构造一个 n+2 维的矩阵. 就是要增加一维去维护2333这样的序列. 可以发现 2333 = 233 ...
- PHP环境的搭建及与nginx的集成
1. 去php官网下载最新稳定版(最新其实是7.0,为了兼容性,使用5.6.16) wget http://cn2.php.net/get/php-5.6.16.tar.gz/from/this/m ...
- Android Sqlite 简单SQL语句
--- 创建表 create table student(_id integer primary key autoincrement, name text); --- 查询全部 select _id, ...
- string 和String的区别
string 是 System.String 的别名,习惯上,我们把字符串当作对象时(有值的对象实体),我们用string.而我们把它当类时(需要字符串类中定义的方法),我们用String,比如: s ...