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. H3BPM表单设计器公式设计参考

    表单设计器公式设计参考 整体说明 Ø 公式以javascript方式解析,最终支持JS语法或计算方式: Ø 公式变量以数据项为主,以{}符号表示数据项,例如数据项A,表示为{A}:如果是子表中的数据项 ...

  2. python之路——迭代器和生成器

    阅读目录 楔子 python中的for循环 可迭代协议 迭代器协议 为什么要有for循环 初识生成器 生成器函数 列表推导式和生成器表达式 本章小结 生成器相关的面试题 返回顶部 楔子 假如我现在有一 ...

  3. Codeforces 680D Bear and Tower of Cubes 贪心 DFS

    链接 Codeforces 680D Bear and Tower of Cubes 题意 求一个不超过 \(m\) 的最大体积 \(X\), 每次选一个最大的 \(x\) 使得 \(x^3\) 不超 ...

  4. 5、Iterator迭代器的使用

    package cn.itcast_02; import java.util.ArrayList; import java.util.Collection; import java.util.Iter ...

  5. 洛谷P1208 [USACO1.3]混合牛奶 Mixing Milk(贪心)

    题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是 ...

  6. html5左右滑动页面效果实现

    The Demo of h5 slider achiev by Myself 主要思路: 设置一个容器container,然后里面有几个page,获取到屏幕的宽度并将其赋值给page,然后contai ...

  7. bootstrap初用新得2

    ##具体实现 1. 宽度无限的背景和始终居中的主题内容:   首先是背景要用一个div1来做out-background,然后div1的兄弟元素div2来做container.对out-backgro ...

  8. jmeter的组成

    1.jmeter的组成 线程组:控制多线程并发 断言:预期是否与实际结果一致,性能测试经验不建议做断言 定时器:自已操作线程停顿的时间 监听器:调试自已的脚本和对系统的监控 配置原件:配置的插件 后置 ...

  9. nginx的一些

    二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS ...

  10. linux ubuntu安装好后,开通远程登录

    1.设置root密码 ubuntu安装好后,用初始的第一个用户登录,然后修改root密码: sudo passwd root 2.检查sshd服务是否启动 (1)查看sshd状态 -----若没有ss ...