webservice调用和生成
webservice简介:
Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。Web Service也很容易部署, 因为它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减少了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制
一、 WebService生成
1.在eclipse或myclipse新建一个Web项目,并新建一个class类,用于发布;
2.编写供客户端调用的方法,即编译方法代码;
示例:
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
/**
* Title: ServiceHello
* Description: 基于jdk1.6以上的javax.jws 发布webservice接口
@WebService - 它是一个注解,用在类上指定将此类发布成一个ws。
Endpoint – 此类为端点服务类,它的方法publish用于将一个已经添加了@WebService注解
对象绑定到一个地址的端口上。
* Version:1.0.0
* @author panchengming
*/
@WebService
public class JwsServiceHello {
/** 供客户端调用方法 该方法是非静态的,会被发布
* @param name 传入参数
* @return String 返回结果
* */
public String getValue(String name){
return "欢迎你! "+name;
}
/**
* 方法上加@WebMentod(exclude=true)后,此方法不被发布;
* @param name
* @return
*/
@WebMethod(exclude=true)
public String getHello(String name){
return "你好! "+name;
}
/** 静态方法不会被发布
* @param name
* @return
*/
public static String getString(String name){
return "再见!"+name;
}
//通过EndPoint(端点服务)发布一个WebService
public static void main(String[] args) {
/*参数:1,本地的服务地址;
2,提供服务的类;
*/
Endpoint.publish("http://192.168.1.105:8080/Service/ServiceHello", new JwsServiceHello());
System.out.println("发布成功!");
//发布成功后 在浏览器输入 http://192.168.1.105:8080/Service/ServiceHello?wsdl
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
3.进行编译运行(注:失败检查jdk版本)
4.将所设地址加上?wsdl到浏览器上访问,如出现XML格式代码,则发布成功,反之,则否;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl)
二、WebService调用方法
生成代码方式一
1.新建一个class类,用于调用webservice。右键src,找到Web Service Client,并输入wsdl地址,选择下载代码的路径;(url: http://192.168.1.105:8080/Service/ServiceHello?wsdl)
2.将地址上的文件下载下来(注意和发布JDK一致);
3.写调用方法调用下载下来的WebService中的java类中的方法;
示例:
import com.pcm.ws.jws.JwsServiceHello;
import com.pcm.ws.jws.JwsServiceHelloService;
/**
*
* Title: JwsClientHello
* Description: webService 客户端调用
* Version:1.0.0
* @author panchengming
*/
public class JwsClientHello {
public static void main(String[] args) {
//调用webservice
JwsServiceHello hello=new JwsServiceHelloService().getJwsServiceHelloPort();
String name=hello.getValue("panchengming");
System.out.println(name);
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
生成代码方式二
1.创建Web Service Project,命名为TheClient。
2.在dos命令下输入 wsimport -s “src目录” -p “生成类所在包名” -keep “wsdl发布地址”
示例:wsimport -s G:\workspace\webService\webService_Project\src -p com.pcm.ws.jws -keep http://192.168.1.105:8080/Service/ServiceHello?wsdl
3.成功则返回 parsing WSDL…
generating code…
compiling code…
4.刷新项目,生成类;
5,写调用方法(同上);
三、总结:
如何发布一个Web服务:
a,在类上添加@WebService注解
(注:此注解是jdk1.6提供的,位于javax.jws.WebService包中)
b,通过EndPoint(端点服务)发布一个WebService
(注:EndPoint是jdk提供的一个专门用于发布服务的类,该类的publish方法接收两个参数,一个是本地的服务地址,二是提供服务的类。位于 javax.xml.ws.Endpoint包中)
c,注:
类上添加注解@WebService,类中所有非静态方法都会被发布;
静态方法和final方法不能被发布;
方法上加@WebMentod(exclude=true)后,此方法不被发布;
webservice调用和生成的更多相关文章
- 使用自定义签名的https的ssl安全问题解决和metro的webservice调用
最近一直在忙新的项目,每天加班到8点多,都没来写博客了.新的项目遇到了很多问题,现在趁着突然停电来记录下调用https的问题吧. 我们服务主要是,我们调用数据源数据,并且再提供接口供外部数据调用. 我 ...
- C#动态webservice调用接口 (JAVA,C#)
C#动态webservice调用接口 using System; using System.Collections; using System.IO; using System.Net; using ...
- WebService调用一对多关联关系时出现 死循环:A cycle is detected in...
通过WebService调用一对多关联关系时引起的问题:A cycle is detected in the object graph 具体异常信息: org.apache.cxf.intercept ...
- WebService调用1(.Net)
1.创建一个最简单的Web Service (1) 新建-项目-ASP.NET空WEB应用程序 (2)添加新项-WEB服务 默认会添加一个HelloWorld方法: using System; us ...
- WebService 调用三种方法
//来源:http://www.cnblogs.com/eagle1986/archive/2012/09/03/2669699.html 最近做一个项目,由于是在别人框架里开发app,导致了很多限制 ...
- 客户端设置WebService调用超时时间
刚接触WebService,对如何在客户端设置WebService调用超时时间查阅了一些资料,现总结如下: ============================================== ...
- JAVA调用 keytool 生成keystore 和 cer 证书
keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...
- asp.net下调用Matlab生成动态链接库
对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置 ...
- WebService 调用
一.WebService调用 1.webservice支持四种调用方式:SOAP 1.1,SOAP 1.2,GET,POST. 2.如果要webservice支持GET,POST调 ...
随机推荐
- Java开发知识之Java编程基础
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...
- linux集群自动化搭建(生成密钥对+分发公钥+远程批量执行脚本)
之前介绍过ansible的使用,通过ssh授权批量控制服务器集群 但是生成密钥和分发公钥的时候都是需要确认密码的,这一步也是可以自动化的,利用ssh + expect + scp就可以实现,其实只用这 ...
- 最近一年语义SLAM有哪些代表性工作?
点击"计算机视觉life"关注,置顶更快接收消息! 本文由作者刘骁授权发布,转载请联系原作者,个人主页http://www.liuxiao.org 目前 Semantic SLAM ...
- DSAPI 添加删除程序到Windows启动
使用DSAPI.dll中文件类里现成的功能,将使你可以快速高效地实现将程序加入Windows启动项或从启动项中删除. 简单也是非常地简单,但由于是比较独立的功能,所以单独发表为整个篇幅. DSAPI ...
- .NET Core[MVC] 利用特性捕捉异常
声明:本方式适用于MVC.本代码只适用于.NET Core MVC. 先创建一个类继承ExceptionFilterAttribute这个抽象类,并override它的方法OnException. 代 ...
- 使用顶级 VSCode 扩展来加快开发 JavaScript
使用顶级 VSCode 扩展来加快开发 JavaScript 发表于 2018年08月24日 by 愚人码头 被浏览 3,942 次 分享到: 小编推荐:掘金是一个面向程序员的高质量技术社区,从 ...
- Vue在ASP.NET MVC中的进行前后端的交互
Vue在ASP.NET MVC中的进行前后端的交互 Preface: 由于最近在研究前端相关的技术,作为前端非常优秀的框架Vue,个人在学习的过程中遇到一些问题,网上相关资料有限,所以在这这里总结一下 ...
- Java开发笔记(六十二)如何定义函数式接口
前面介绍了Lambda表达式的用法,从实践中发现它确实极大地方便了开发者,然而不管是匿名内部类还是Lambda表达式,所举的例子都离不开各类数组的排序方法,倘使Lambda表达式仅能用于sort方法, ...
- Python全栈开发之---装饰器
1.装饰器的形成过程 import time def func1(): print('in func1') def timer(func): def inner(): start = time.tim ...
- jQuery 父iframe与子iframe 相互调用传值
来自:https://blog.csdn.net/wd4871/article/details/50517597 侵删 父页面中的iframe :如下 <iframe name="su ...