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服务并调用的更多相关文章

  1. (二)发布第一个WebService服务与DSWL文档解析

    1. 编写接口 package service; import javax.jws.WebService; /** * 第一个webservice服务, * @WebService注解表示这是一个we ...

  2. WebService学习之旅(五)基于Apache Axis2发布第一个WebService

    上篇博文介绍了如何將axis2 webservice引擎安装到Web容器中,本节开始介绍如何基于apache axis2发布第一个简单的WebService. 一.WebService服务端发布步骤 ...

  3. (一)CXF之发布第一个WebService服务

    一.CXF入门 1.1 前提 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS .这些 ...

  4. 05.使用jdk发布webservice服务

    无论服务端是用什么写的,使用框架写的还是用jdk写的,它都会发布出来这样一个东西.主要你遵循咱们这七个步骤来走就可以调用了. 咱们现在转换一下角色,自己发布一个服务让别人去调.怎么来发布一个服务? 我 ...

  5. 【Web学习日记】——在IIS上发布一个WebService

    没有开发过程,只是发布过程 一.前提 开发使用的是VS2013 从来没有做过Web的发布,在网上找例子,看到的总是与自己的情况不相符,而且也有人提出了VS2013发布网站的问题,但解决方案却很少,好不 ...

  6. 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)

    首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...

  7. 自定义及发布一个webservice服务

    自定义及发布一个webservice服务    - 声明 某个业务服务为webservice服务       通过@webservice 注解来声明    - 发布webservice服务       ...

  8. So easy Webservice 6.使用EndPoint发布webservice服务

    创建第一个Web服务: @WebService // 添加了此注解,代表是一个WebService public class HelloWorld { // 非 static final privat ...

  9. Spring整合CXF,发布RSETful 风格WebService(转)

    Spring整合CXF,发布RSETful 风格WebService 这篇文章是承接之前CXF整合Spring的这个项目示例的延伸,所以有很大一部分都是一样的.关于发布CXF WebServer和Sp ...

随机推荐

  1. python入门前的准备

    为什么学习python? python是一种高级脚本解释性语言,若运行for循环等肯定不如c或fortran快,但是它是开源的,有很多特别有用的库,代码以空格强制控制格式,形式优美简洁,且特别容易实现 ...

  2. python读取文件,python读取的1变成\ufeff1

    '\ufeff1' movies={} fm=open(self.path+'/movie.txt',encoding='utf-8') w2=open('./data/1.txt','a') for ...

  3. Xcode svn import项目 上传.a文件(静态库)

    在终端使用命令 touch 项目所在文件夹 svn import 项目文件夹 https://服务器地址 -m "iPad import" 这样就把项目上传到服务器上了!但是不能把 ...

  4. (线段树)Balanced Lineup --POJ --3264

    链接: 对于POJ老是爆,我也是醉了, 链接等等再发吧! http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82832#problem/G 只 ...

  5. CDialog

    对话框和对话框类CDialog 对话框经常被使用,因为对话框可以从模板创建,而对话框模板是可以使用资源编辑器方便地进行编辑的. 模式和无模式对话框 对话框分两种类型,模式对话框和无模式对话框. 模式对 ...

  6. Lucene.net 基本示例 《第一篇》

    Lucene.net是java平台搜索插件Lucene的移植版.它的主要用于开发搜索引擎,站内搜索等. 开篇之前,写个最简单的DEMO,让自己先体验下Lucene.net的魅力,顺便搭建环境. sta ...

  7. 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 ...

  8. Hdu1427 速算24点 2017-01-18 17:26 46人阅读 评论(0) 收藏

    速算24点 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  9. Sending Email In .NET Core 2.0

    Consider the following written in .NET Core 2.0. SmtpClient client = ) { UseDefaultCredentials = tru ...

  10. ADO.NET系列之Connection对象

    ADO.NET系列之Connection对象 ADO.NET系列之Command对象 ADO.NET系列之DataAdapter对象 ADO.NET系列之事务和调用存储过程 ADO.NET概念 ADO ...