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这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
随机推荐
- 9.18[XJOI] NOIP训练36
***在休息了周末两天(好吧其实只有半天),又一次投入了学车的怀抱,重新窝在这个熟悉的机房 今日9.18(今天以后决定不写打卡了) 日常一日总结 一个昏昏欲睡的早晨 打了一套不知道是谁出的题目,空间限 ...
- [hihocoder][Offer收割]编程练习赛48
折线中点 #pragma comment(linker, "/STACK:102400000,102400000") #include<stdio.h> #includ ...
- html5和css3的笔记
h5+c3 W3C盒子模型和ie盒子模型 文档<!DOCTYPE html>加上的话,所有浏览器都按照W3C的盒子模型,否则ie会按照ie的盒子模型,它的content包括了padding ...
- MobX入门
MobX入门 本文尝试解释MobX是如何运作的.我们将用MobX创建一个小案例.如果你正在找靠谱的MobX文档,可以去看官方文档. 什么是MobX 官方文档的解释:简洁,易扩展的状态管理.简单来说,M ...
- Android 自定义控件之圆形扩散View(DiffuseView)
实现效果 使用 属性方法 代码 源码下载 参考链接 实现效果 使用 XML中: <com.airsaid.diffuseview.widget.DiffuseView android:id=&q ...
- C# window服务操作
public int GetWindowsServiceStartType(String sServiceName) //判断服务状态是手动还是禁用还是自动 { string sState = &qu ...
- java 读取配置文件(nx就转了)
借鉴别人的 package test; import java.io.FileInputStream; import java.io.FileNotFoundException; import jav ...
- Jquery中的bind()方法的一点问题
bind()方法绑定事件的时候,第二个参数是函数,如果代码都写在函数里面,没有任何问题.但是,直接调用外部封装的函数需要注意,出错的例子: <!doctype html> <html ...
- Eclipse 中的 Bulid Path
什么是Build Path? Build Path是指定Java工程所包含的资源属性集合. 在一个成熟的Java工程中,不仅仅有自己编写的源代码,还需要引用系统运行库(JRE).第三方的功能扩展库.工 ...
- vc++如何创建程序01
1 .选择文件+新建(ctrl+N),然后选择一个空的工程,完成 2 然后在选择file新建,在files文件下面选择一个C++Source File,并取个文件名(比如为point可以不带.c) 我 ...