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 ...
随机推荐
- python入门前的准备
为什么学习python? python是一种高级脚本解释性语言,若运行for循环等肯定不如c或fortran快,但是它是开源的,有很多特别有用的库,代码以空格强制控制格式,形式优美简洁,且特别容易实现 ...
- python读取文件,python读取的1变成\ufeff1
'\ufeff1' movies={} fm=open(self.path+'/movie.txt',encoding='utf-8') w2=open('./data/1.txt','a') for ...
- Xcode svn import项目 上传.a文件(静态库)
在终端使用命令 touch 项目所在文件夹 svn import 项目文件夹 https://服务器地址 -m "iPad import" 这样就把项目上传到服务器上了!但是不能把 ...
- (线段树)Balanced Lineup --POJ --3264
链接: 对于POJ老是爆,我也是醉了, 链接等等再发吧! http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82832#problem/G 只 ...
- CDialog
对话框和对话框类CDialog 对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的. 模式和无模式对话框 对话框分两种类型,模式对话框和无模式对话框. 模式对 ...
- Lucene.net 基本示例 《第一篇》
Lucene.net是java平台搜索插件Lucene的移植版.它的主要用于开发搜索引擎,站内搜索等. 开篇之前,写个最简单的DEMO,让自己先体验下Lucene.net的魅力,顺便搭建环境. sta ...
- hdu1171 Big Event in HDU(01背包) 2016-05-28 16:32 75人阅读 评论(0) 收藏
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- Hdu1427 速算24点 2017-01-18 17:26 46人阅读 评论(0) 收藏
速算24点 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submiss ...
- Sending Email In .NET Core 2.0
Consider the following written in .NET Core 2.0. SmtpClient client = ) { UseDefaultCredentials = tru ...
- ADO.NET系列之Connection对象
ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 ADO.NET概念 ADO ...