基于 jdk1.7 发布一个 WebService 服务
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 服务的更多相关文章
- 自定义及发布一个webservice服务
自定义及发布一个webservice服务 - 声明 某个业务服务为webservice服务 通过@webservice 注解来声明 - 发布webservice服务 ...
- WebService-01-使用jdk发布第一个WebService服务并调用
Webservice是SOAP+XML,SOAP是基于Http的,Http底层是Socket,先回顾一下Socket: Server: public class Server { public sta ...
- (二)发布第一个WebService服务与DSWL文档解析
1. 编写接口 package service; import javax.jws.WebService; /** * 第一个webservice服务, * @WebService注解表示这是一个we ...
- java程序调用xfire发布的webService服务(二)
在上一篇的调用xfire发布的webService服务中,我只是从服务端返回了一个字符串给客户端,却没有测试从客户端传递数据给服务端.而实际应用中一般是不太可能只出现这样的应用场景的,因此我便更进一步 ...
- (一)CXF之发布第一个WebService服务
一.CXF入门 1.1 前提 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS .这些 ...
- 在IIS上发布一个WebService,再发布一个网站调用这个WebService(实例)
首先描述一下先决条件:IIS可用,VS2005可用. 好,现在开始: 首先写一个WebService并把它发布到IIS上: 在IIS上的默认网站下新建一个“虚拟目录”,取名为“webservice1” ...
- 【Web学习日记】——在IIS上发布一个WebService
没有开发过程,只是发布过程 一.前提 开发使用的是VS2013 从来没有做过Web的发布,在网上找例子,看到的总是与自己的情况不相符,而且也有人提出了VS2013发布网站的问题,但解决方案却很少,好不 ...
- java程序调用xfire发布的webService服务
昨天用xfire搭好了一个简单的webService的服务,可以在浏览器访问,今天便想要尝试以下如何调用这个服务及相关的方法.在网上查找了一些资料后,实现过程如下. 1.创建一个maven web项目 ...
- soamanager发布的Webservice服务,调用时出现http500报错
最近再给薪酬那边发布ws服务时出现了报错,调用方反馈了errorCode:BEA-380002.在使用XMLspy工具去调用这个WSDL时候,则反馈http500的错误消息.如下图: 遇到这种问题我通 ...
随机推荐
- web集群时session同步的3种方法
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是 ...
- 从头开始学eShopOnContainers——开发环境要求
一.简介 eShopOnContainers是一个简化版的基于.NET Core和Docker等技术开发的面向微服务架构的参考应用,是一个简化版的在线商城/电子商务应用,其包含基于浏览器的Web应用. ...
- Sqlserver风格规范
常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数据类型 4.自增长标识建议采用bigint ...
- css css预处理器
CSS预处理器(css preprocessor) 1.less: 2.sass: 3.scss: 4.stylus 参考: http://hao.jser.com/archive/2507/ htt ...
- "window.location.href"、"location.href"是本页面跳转
"window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...
- 趣图:TCP 与 UDP 的差别
趣图:程序猿和运维狗的工作日常…… 趣图:Java 和 PHP 之间的战斗
- MongoDB 深入学习 -- ReplSet,Sharding,Security,Aggregation,Command
萌新最近在对付MongoDB,因此每天都在翻官方文档,这里随便做点笔记 ReplSet 与 Sharding ReplSet 是副本集,也就是主从集合.可以用来做负载均衡,数据热备份.副本集的配置相对 ...
- P2407 [SDOI2009]地图复原
$ \color{#0066ff}{ 题目描述 }$ 很久以前,有一个传说中的"EWF"部族,他们世代生活在一个N×M的矩形大地上.虽然,生活的地区有高山.有沼泽,但通过勤劳勇敢, ...
- Deploy Flask app to Apache on Windows
内容已过期,分割线以下为原文存档. 故事背景 这次我需要将一个Flask应用部署到本地的Windows服务器上.操作系统是64位的,程序是基于Python 3开发的,大体就是这样. 部署选项 根据Fl ...
- 最短路径SPFA算法(邻接表存法)
queue <int> Q; void SPFA (int s) { int i, v; for(int i=0; i<=n; i++) dist[i]=INF; //初始化每点i到 ...