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 ...
随机推荐
- noip第8课作业
1. 计算书费 [问题描述]下面是一个图书的单价表: 计算概论 28.9 元/本 数据结构与算法 32.7 元/本 数字逻辑 45.6元/本 C++程序设计教程 78 元/本 人工智能 35 ...
- Mysql工作記錄之修改默認存儲引擎及重設root用戶密碼
1>修改默認存儲引擎方法 修改配置文件,然後重啟mysql服務: [root@CHW mysql]# cat /etc/my.cnf [my ...
- Vuejs——(5)v-on
版权声明:出处http://blog.csdn.net/qq20004604 目录(?)[+] 资料来于官方文档: http://cn.vuejs.org/guide/events.html ...
- 四则运算 Python实现(杨浩政,张兆敏)
四则运算 GitHub仓库:https://github.com/15crmor/Arithmetic 项目要求: 题目:实现一个自动生成小学四则运算题目的命令行程序说明: 说明: 自然数:0, 1, ...
- Ubuntu14.04下Pycharm3.4 字体渲染
在ubuntu下搭建了django的开发环境,搭建过程十分简单,Pycharm的安装更简单,下载tar包解压并执行bin目录下的脚本即可,但是看着那个字体真心不爽.于是开始搜索调教. 1.安装打了渲染 ...
- C# winform 去掉button的边框颜色
Winform的话,设置FlatStyle为Flat,并且设置FlatAppearance下的BorderSize为0,foreColor设置成web下的Transparent
- 虚幻4随笔6 Object和序列化
诚如之前所说,虚幻4主要的一些特性都是由UObject穿针引线在一起的,想把虚幻玩到比较深的程度,UObject是迟早要面对.回避不得的问题,所以,准备在其它主题之前,先把UObject好好弄一下.U ...
- 前端分享----JS异步编程+ES6箭头函数
前端分享----JS异步编程+ES6箭头函数 ##概述Javascript语言的执行环境是"单线程"(single thread).所谓"单线程",就是指一次只 ...
- 【BZOJ3238】[AHOI2013]差异
[BZOJ3238][AHOI2013]差异 题面 给定字符串\(S\),令\(T_i\)表示以它从第\(i\)个字符开始的后缀.求 \[ \sum_{1\leq i<j\leq n}len(T ...
- Day 30 面向对象的考试题
-摘自张磊同学博客. 面向对象 1.请简述类.对象.实例化.实例这些名词的含义: #类 : 是对具有相同属性和相似行为的一类事物的抽象 #对象: 是一个具有具体属性值的类的实例化 #实例化 : 从一个 ...