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服务——简单实例的更多相关文章

  1. java项目中ehcache缓存最简单用法

      java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...

  2. 如何在SpringMVC项目中部署WebService服务并打包生成客户端

    场景 某SpringMVC项目原本为一个HTTP的WEB服务项目,之后想在该项目中添加WebService支持,使该项目同时提供HTTP服务和WebService服务.其中WebService服务通过 ...

  3. 使用CXF发布WebService服务简单实例

    一.说明: 前面介绍了使用axis2来发布Webservice服务,现在介绍一种更popular,更高效的Webservice服务发布技术:CXF Apache CXF = Celtix + XFir ...

  4. 在java项目中使用webservice

    今天学习webservice,主要参考了网络上的一些文章. 1.关于原理的介绍:个人认为这篇文章写得不错了,戳这里. 2.关于demo的编写:个人认为这篇文章很简洁,也能运行成功,戳这里. 按照上面那 ...

  5. java web项目(spring项目)中集成webservice ,实现对外开放接口

    什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...

  6. UCenter在JAVA项目中实现的单点登录应用实例

    Comsenz(康盛)的UCenter当前在国内的单点登录领域占据绝对份额,其完整的产品线令UCenter成为了账号集成方面事实上的标准. 基于UCenter,可以将Comsenz旗下的Discuz! ...

  7. 用JAX-WS在Tomcat中公布WebService

    JDK中已经内置了Webservice公布,只是要用Tomcat等Webserver公布WebService,还须要用第三方Webservice框架. Axis2和CXF是眼下最流行的Webservi ...

  8. ckeditor编辑器在java项目中配置

    一.基本使用: 1.所需文件架包 A. Ckeditor基本文件包,比如:ckeditor_3.6.2.zip 下载地址:http://ckeditor.com/download 2.配置使用 A.将 ...

  9. JAVA项目中常用的异常处理情况总结

    JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...

随机推荐

  1. 使用autofac在mvc5下依赖注入

    把遇到的问题汇总一下: 一.安装mvc5版本 命令:pm> Install-Package Autofac 结果安装的Autofac.Integration.Mvc(版本为4.0),所引用的依赖 ...

  2. 关于Html基础语法学习

    晚上做完初赛,好像有点颓,就来学了学html,毕竟博客里面会用到嘛. 首先贴出我所学习的教程 http://www.w3school.com.cn/html/index.asp 我觉得吧,可能以我的记 ...

  3. 组合模式(composite)C++实现

    组合模式 意图: 将对象组合成树形结构以表示‘部分-整体’的层次结构,所以有时候又叫做部分-整体模式.组合模式使得用户对单个对象和组合对象的使用具有一致性.,它使我们树型结构的问题中,模糊了简单元素和 ...

  4. Java基础7一面向对象

    1.构造方法: (1)定义:方法名称必须和类名相同,没有返回值,也没有void (2)语法: [访问修饰符] 类名(){ } (3)作用:创建对象.初始化成员变量. (4)构造方法的分类: A.无参数 ...

  5. Findbugs分析工具介绍

    Findbugs是一个静态分析工具,它检查类或者JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题.Findbugs自带检测器,其中有60余种Bad practice,80余种Correct ...

  6. 模拟试题B

    模拟试题B 一.单项选择题(2′*8 =16′) 1.灰度等级为256级,分辨率为2048*1024的显示器,至少需要的帧缓存容量为( ) A)512KB B)1MB C)2MB D)3MB 2.在多 ...

  7. cms初步构想

    一.cms系统的初步构想 公司正准备使用yii框架重新弄个类cms的系统: 初步的功能: 栏目文章的管理 SEO的优化功能 推荐位管理 一些思路和规则: 数据库表名的定义:通过"大模块名称+ ...

  8. 解读:20大5G关键技术

    解读:20大5G关键技术 5G网络技术主要分为三类:核心网.回传和前传网络.无线接入网. 核心网 核心网关键技术主要包括:网络功能虚拟化(NFV).软件定义网络(SDN).网络切片和多接入边缘计算(M ...

  9. docker批量删除容器、镜像

    1.删除所有容器 docker rm `docker ps -a -q` docker rm $(docker ps -aq) 2.删除所有镜像 docker rmi `docker images - ...

  10. 【路飞学城Day170】算法小结

    Evernote Export 算法的思想是能省则省,内存能少则少,时间运行能少尽量少 堆排序的时间复杂度O(nlogn) 堆排序的内置模块heapq 常用函数 heapify(x) heappush ...