1 服务端的发布

第一步: 创建一个 Java 项目
第二步: 创建一个类, 加入 Webservice 注解
第三步: 提供一个方法 sayHello
第四步: 在 main 方法中调用 jdk 提供的发布服务的方法

第五步:访问服务的 wsdl文档(服务的发布地址+?wsdl)http://192.168.31.247:8888/hello?wsdl

package com.test.webservice;

import javax.jws.WebService;
import javax.xml.ws.Endpoint; //1、给类添加注解
@WebService
public class HelloService { //2、声明实例方法
public String sayHello(String name,int age){
System.out.println("服务端的 sayHello 方法被调用了。 。 。 。 ");
return "hello:"+name+"---age:"+age;
} public static void main(String[] args) {
String address = "http://192.168.31.247:8888/hello";
Object implementor = new HelloService();
//3 使用端点服务,将对象绑定到一个地址和端口。同时必须要在端口后面给服务取一个名称
//第一个参数称为Binding即绑定地址,
//第二个参数是实现者,即谁提供服务
Endpoint.publish(address, implementor);
}
}

运行上面的程序,可以看到程序一直处于运行状态,这和以前我们运行main程序一闪而过是不一样的。

我们可以在浏览器中访问wsdl文档:查看的效果如下

2 客户端调用

1 jdk 中 wsimport 命令使用

作用: 解析 wsdl 文件, 生成客户端本地代码

针对上面的第一个服务我们执行命令:wsimport -s . http://192.168.31.247:8888/hello?wsdl

得到的代码如下:

2 客户端调用

1、 使用wsimport命令解析wsdl文件生成本地代码
2、 通过本地代码创建一个代理对象
3、 通过代理对象实现远程调用

复制生成的所有的.java文件到项目中

创建类调用服务

package com.test.webservice;

/**
* 1、 使用 wsimport 命令解析 wsdl 文件生成本地代码
* 2、 通过本地代码创建一个代理对象
* 3、 通过代理对象实现远程调用
* @author jepson
*
*/
public class App {
public static void main(String[] args) {
HelloServiceService ss = new HelloServiceService(); HelloService proxy = ss.getHelloServicePort(); String s= proxy.sayHello("tom", 25); System.out.println(s);
}
}

运行上面的代码结果为:

服务程序运行结果为:

看懂使用说明书WSDL

基于 jdk1.7 发布一个 WebService 服务的更多相关文章

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

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

  2. WebService-01-使用jdk发布第一个WebService服务并调用

    Webservice是SOAP+XML,SOAP是基于Http的,Http底层是Socket,先回顾一下Socket: Server: public class Server { public sta ...

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

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

  4. java程序调用xfire发布的webService服务(二)

    在上一篇的调用xfire发布的webService服务中,我只是从服务端返回了一个字符串给客户端,却没有测试从客户端传递数据给服务端.而实际应用中一般是不太可能只出现这样的应用场景的,因此我便更进一步 ...

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

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

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

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

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

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

  8. java程序调用xfire发布的webService服务

    昨天用xfire搭好了一个简单的webService的服务,可以在浏览器访问,今天便想要尝试以下如何调用这个服务及相关的方法.在网上查找了一些资料后,实现过程如下. 1.创建一个maven web项目 ...

  9. soamanager发布的Webservice服务,调用时出现http500报错

    最近再给薪酬那边发布ws服务时出现了报错,调用方反馈了errorCode:BEA-380002.在使用XMLspy工具去调用这个WSDL时候,则反馈http500的错误消息.如下图: 遇到这种问题我通 ...

随机推荐

  1. web集群时session同步的3种方法

    在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...

  2. 从头开始学eShopOnContainers——开发环境要求

    一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用,是一个简化版的在线商城/电子商务应用,其包含基于浏览器的Web应用. ...

  3. Sqlserver风格规范

    常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigint ...

  4. css css预处理器

    CSS预处理器(css preprocessor) 1.less: 2.sass: 3.scss: 4.stylus 参考: http://hao.jser.com/archive/2507/ htt ...

  5. "window.location.href"、"location.href"是本页面跳转

    "window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...

  6. 趣图:TCP 与 UDP 的差别

      趣图:程序猿和运维狗的工作日常…… 趣图:Java 和 PHP 之间的战斗

  7. MongoDB 深入学习 -- ReplSet,Sharding,Security,Aggregation,Command

    萌新最近在对付MongoDB,因此每天都在翻官方文档,这里随便做点笔记 ReplSet 与 Sharding ReplSet 是副本集,也就是主从集合.可以用来做负载均衡,数据热备份.副本集的配置相对 ...

  8. P2407 [SDOI2009]地图复原

    $ \color{#0066ff}{ 题目描述 }$ 很久以前,有一个传说中的"EWF"部族,他们世代生活在一个N×M的矩形大地上.虽然,生活的地区有高山.有沼泽,但通过勤劳勇敢, ...

  9. Deploy Flask app to Apache on Windows

    内容已过期,分割线以下为原文存档. 故事背景 这次我需要将一个Flask应用部署到本地的Windows服务器上.操作系统是64位的,程序是基于Python 3开发的,大体就是这样. 部署选项 根据Fl ...

  10. 最短路径SPFA算法(邻接表存法)

    queue <int> Q; void SPFA (int s) { int i, v; for(int i=0; i<=n; i++) dist[i]=INF; //初始化每点i到 ...