博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebService-01-使用jdk发布第一个WebService服务并调用
阅读量:4683 次
发布时间:2019-06-09

本文共 3716 字,大约阅读时间需要 12 分钟。

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 接口。 */@WebServicepublic 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:         * 
*/ HelloServiceService hss = new HelloServiceService(); /** * WSDL: *
*/ HelloService hs = hss.getHelloServicePort(); String result = hs.sayHello("NB"); System.err.println(result); //com.sun.proxy.$Proxy32 JDK动态代理生成的代理类 System.err.println(hs.getClass().getName()); }}

这个网站上有一些免费的服务可以调用,下边调用一下手机卡信息的服务

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);            }}

 

转载于:https://www.cnblogs.com/lihaoyang/p/8708337.html

你可能感兴趣的文章
Open vSwitch安装
查看>>
HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
查看>>
document.domain 跨域问题[转]
查看>>
【Android】 No Activity found to handle Intent.
查看>>
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
查看>>
Struts2 Action名称的搜索顺序
查看>>
C++ sort简单用法
查看>>
Oracle分区索引
查看>>
4.17上午
查看>>
IIS的ISAPI接口简介
查看>>
python:open/文件操作
查看>>
16 乘法口诀输出
查看>>
mac 常用地址
查看>>
鼠标经过切换图片
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
C程序的启动和终止
查看>>
经典类和新式类
查看>>
下拉菜单
查看>>