JAX-WS RI组件开发基于JAX-WS规范的WebService服务入门程序

一、服务端

创建一个普通的web项目:JaxWS_ri_calculator_server
先把服务端项目完成之后完整的结构示意图展示出来,方便你们做参考:

在这里插入图片描述

1、创建提供webservice服务的服务接口

创建一个Web项目,并创建一个提供WebService服务的服务接口
该接口提供的服务:加法运算和乘法运算

服务接口

2、创建提供webservice服务的服务接口的实现类

创建提供WebService服务的服务接口实现类

服务接口实现类

3、将JAX-WS RI组件lib目录下的jar包导入工程

使用JAX-WS RI组件来发布webservice服务到服务器上
需要用到JAX-WS RI组件的相应jar包(我是用的是 jaxws-ri-2.3.2 )
为了缺包找不到类的情况出现,所以把所有jar包都导入。

找到lib目录
在这里插入图片描述

4、配置sun-jaxws.xml文件

关于该文件中的配置:从*JAX-WS RI组件*安装目录下的 *docs目录* 中找到sun-jaxws.xsd文件,将其中的部分配置复制出来即可。

先找到sun-jaxws.xsd文件:
在这里插入图片描述

再复制如下代码:
在这里插入图片描述

最后,手动在工程的/WEB-INF目录下创建sun-jaxws.xml配置文件并进行配置,如下:
在这里插入图片描述

5、配置web.xml

使用JAX-WS RI组件,需要配置一个监听器:WSServletContextListener
当客户端访问webservice服务的时候,该监听器就会监听到,并找到同样配置在web.xml中的WSServlet,交给它来找寻webservice服务。

在这里插入图片描述

6、部署到tomcat服务器并访问服务

将我们的项目添加到tomcat服务器中(跟其他项目一样的添加方式),并启动服务器。
打开浏览器,地址栏输入访问wsdl文件的路径:http://localhost:8080/JaxWS_ri_calculator_server/calculatorService?wsdl
  • wsdl路径简介:
  • localhost :使用tomcat服务器部署,只能在本地自己测试,所以是localhost,也可以是127.0.0.1
  • 8080 : 端口号
  • JaxWS_ri_calcalator_server :项目名
  • calculatorService : 配置文件配置的提供webservice服务的服务接口实现类
  • wsdl : 请求参数,表示访问该webservice服务的wsdl文件

出现如下页面,即表示部署成功:
在这里插入图片描述

二、客户端

创建一个普通的java项目:JaxWS_ri_calculator_client
先把客户端项目完成之后完整的结构示意图展示出来,方便你们参考:

在这里插入图片描述

1、获取服务端文件

你如果接触过最简单的webservice程序,你就会会知道,模拟一个客户端去调用服务端的服务,需要知道的参数有:
wsdl文件路径
提供webservice服务的服务接口源文件(.java)
服务接口实现类中@WebService注解上targetNamespace属性的值(wsdl文件中可以得知)
服务接口实现类中@WebService注解上serviceName属性的值(wsdl文件中可以得知)
因此,获取起来相对麻烦。

而JDK1.6自带了wsimport.exe工具,就是专门为了方便客户端获取服务端文件以及调用webservice服务的。
该工具位于JDK安装目录的lib目录下。

使用方法:
进入命令提示符界面
切换到JDK安装路径的lib目录下
输入wsimport, 回车,就可以看到该工具的参数,根据需要选择,通常是 -keep 表示保存文件  -s 保留源文件

格式:wsimport -keep -s 保留源文件的路径  wsdl文件路径

命令提示符界面如下:
在这里插入图片描述

由图可知,我设置了将生成的.java源文件放在D:/haha/jax_ws_ri目录中,查看之后文件如下:
在这里插入图片描述
在这里插入图片描述

2、将生成的文件加入我们的工程

在工程中,按照生成的包路径创建包(为了防止包路径提示错误),然后将生成的文件加入到工程中,如下:

在这里插入图片描述

3、创建调用服务的客户端程序

创建一个client.java来模拟客户端,然后调用webservice服务

在这里插入图片描述

4、结果显示
在这里插入图片描述

发布了23 篇原创文章 · 获赞 1 · 访问量 1648

猜你喜欢

转载自blog.csdn.net/weixin_43978412/article/details/99596714