JAVA项目中公布WebService服务——简单实例
1。在Java项目中公布一个WebService服务:
怎样公布?
——JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务。
(1)用jdk1.6.0_21以后的版本号公布。
(2)与Web服务相关的类,都位于Javax.jws.*包中
@WebService——此注解用在类上指定将此类公布成一个WebService;
EndPoint——此类为端点服务类,当中publish()方法用于将一个已经加入了@WebService注解对象绑定到一个地址的port上,用于公布。
2。样例:
(1)公布WebService服务
HelloWebService.java:
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;
importjavax.jws.WebMethod;
importjavax.jws.WebService;
importjavax.xml.ws.Endpoint;
/**
* @WebService - 它是一个注解,用在类上指定将此类公布成一个ws.
Endpoint – 此类为端点服务类。它的方法publish用于将一个已经加入了@WebService注解对象绑定到一个地址的端口上。 * @author xuemin
*
*/
@WebService
public classHelloWebService { publicString HelloWord(String name){
return"Hello: "+name;
} /**
*加入exclude=true后,HelloWord2()方法不会被公布
* @param name
* @return
*/
@WebMethod(exclude=true)
publicString HelloWord2(String name){
return"Hello: "+name;
}
publicstatic void main(String[] args) {
/**
*參数1:服务的公布地址
*參数2:服务的实现者
*/
Endpoint.publish("http://192.168.24.138:456/helloWord",new HelloWebService()); } }</span>
注:
@WebService-
它是一个注解,用在类上指定将此类公布成一个ws.
Endpoint –此类为端点服务类。它的方法publish用于将一个已经加入了@WebService注解对象绑定到一个地址的port上。
执行以上程序进行公布。
(2)查看wsdl
地址:http://192.168.24.138:456/helloWord?wsdl
仅仅要在client浏览器能看到此WSDL文档。说明服务公布成功
以上服务公布成功。
总结:
怎样公布一个Web服务:
a,在类上加入@WebService注解
(注:此注解是jdk1.6提供的。位于javax.jws.WebService包中)
b,通过EndPoint(端点服务)公布一个WebService
(注:EndPoint是jdk提供的一个专门用于公布服务的类。该类的publish方法接收两个參数,一个是本地的服务地址。二是提供服务的类。位于
javax.xml.ws.Endpoint包中)
c,注:
类上加入注解@WebService,类中全部非静态方法都会被公布;
静态方法和final方法不能被公布。
方法上加@WebMentod(exclude=true)后,此方法不被公布;
(3)client訪问公布的服务
依据WSDL文档来在client编写代码,訪问公布的服务。
可是,WSDL文档看不懂怎么办?代码该怎样编写?
——你看不懂,JDK看得懂。wsimport是JDK自带的,能够依据WSDL文档生成client调用代码的工具。不管server端WebService使用什么语言编写的,豆浆在client生成Java代码。所以server用什么语言编写的并不重要。
wsimport.exe命令參数熟知:
-d:生成class文件。默认參数。
-s:生成Java文件
-p:自己定义包结构
解析地址生成源代码到E盘:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFueHVlbWluMTIzNDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
运行以上命令后。就可以在E盘下生成例如以下包及类
注:还能够自己定义包结构:
自己定义包结构的命令:
将生成的包及.java文件拷贝到client:例如以下图
创建訪问服务的类:MyClient.java:
MyClient.java:
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws;
public classMyClient {
publicstatic void main(String[] args) {
HelloWebServiceServicehwss = new HelloWebServiceService();
HelloWebServicehws = hwss.getHelloWebServicePort();
Stringresult=hws.helloWord("hanxuemin");
System.out.println(result);
}
}</span>
(4)执行结果:
总结:
通过此篇博客,应该掌握到:怎样公布一个Java Web服务。怎样在client訪问公布的Web服务。
JAVA项目中公布WebService服务——简单实例的更多相关文章
- java项目中ehcache缓存最简单用法
java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...
- 如何在SpringMVC项目中部署WebService服务并打包生成客户端
场景 某SpringMVC项目原本为一个HTTP的WEB服务项目,之后想在该项目中添加WebService支持,使该项目同时提供HTTP服务和WebService服务.其中WebService服务通过 ...
- 使用CXF发布WebService服务简单实例
一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...
- 在java项目中使用webservice
今天学习webservice,主要参考了网络上的一些文章. 1.关于原理的介绍:个人认为这篇文章写得不错了,戳这里. 2.关于demo的编写:个人认为这篇文章很简洁,也能运行成功,戳这里. 按照上面那 ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
- UCenter在JAVA项目中实现的单点登录应用实例
Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...
- 用JAX-WS在Tomcat中公布WebService
JDK中已经内置了Webservice公布,只是要用Tomcat等Webserver公布WebService,还须要用第三方Webservice框架. Axis2和CXF是眼下最流行的Webservi ...
- ckeditor编辑器在java项目中配置
一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...
- JAVA项目中常用的异常处理情况总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
随机推荐
- Linux系统查看当前时间的命令
转自:https://www.cnblogs.com/redfire/p/7702213.html 一.查看和修改Linux的时区1. 查看当前时区命令 : "date -R"2. ...
- OC数组和字典中存入niu值
在NSArray和NSDictionary中nil有特殊的含义.但是某些时候,我们必须要放入nil怎么办? 要想放入nil就必须用到一个类NSNull,这个类只有一个类方法,就是null.[NSNul ...
- LeetCode Weekly Contest 27
1. 557. Reverse Words in a String III 分割字符串,翻转. class Solution { public: string reverseWords(string ...
- C - Elephant(贪心)
Problem description An elephant decided to visit his friend. It turned out that the elephant's house ...
- C - Unary(map)
Problem description Unary is a minimalistic Brainfuck dialect in which programs are written using on ...
- Socket server
Socket server的使用方法(精华部分),仅供自用. class MyServer(socketserver.BaseRequestHandler): def handle(self): wh ...
- EditPlus修改主题方法
在“EditPlus.exe”或"EditPlus64.exe"所在的目录下找到"editplus_u.ini"文件(如果不存在就新建一个),修改这个文件即可更 ...
- Android学习——碎片Fragment的使用
一.碎片的简单用法(实现在一个活动中添加两个碎片,并让这两个碎片平分活动空间) 1.新建一个FragmentTest项目: 新建一个左侧碎片布局left_fragment.xml,代码如下:(只放置一 ...
- TD中INPUT的宽度设置
最近在用C#做Web程序时,碰到一个问题: 将TextBox的asp控件放在Table中的TD里面时,不设置宽度,自动会将TD撑的很大. 查看运行后页面的源代码发现,其实TextBox控件最终在客户端 ...
- VTK读取序列化图像
vtk获取内存中图像数据 原文链接:http://blog.csdn.net/zmy3376365/article/details/7717721 内存中有段图片数据 ,使用VTK来读入,然后就可以 ...