博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于WSDL契约优先的web services服务器端和客户端开发方式
阅读量:4047 次
发布时间:2019-05-25

本文共 2044 字,大约阅读时间需要 6 分钟。

一.    通过Eclipse方式

1.    服务器端代码产生方式

(1)    Eclipse(以下简称IDE)中创建一个普通的Java Project,或构建一个Maven管理的项目;

(2)    项目右键-Properties-Project Facets,勾选Dynamic Web Module,JAVA EE5对应2.5版本;
(3)    将已有的WSDL文件放在src下任意位置;
(4)    项目右键-New-Other-Web Service;
(5)    Web service type选择Top down Java bean Web Service,Service definition选择WSDL文件,级别为最低的Develop,选择Next。

 
(6)    Output Directory中选择src位置(支持Maven项目),Package Name中填写包路径,选择Finish;

 

2.    客户端产生方式

(1)    构建普通Java Project项目或在一个Maven项目中,设置Project Facets,并将WSDL放入项目目录下;

(2)    项目右键-New-Other-Web Service Client;
(3)    Service definition选择WSDL文件,级别为最低的Develop,选择Next。
(4)    Output Directory中选择src位置(支持Maven项目),Package Name中填写包路径,选择Finish;

 

3.    测试

(1)    服务器端可以采用CXF发布,或简单通过Endpoint发布。

 
(2)    客户端可以通过调用生成代码中已有的 ***_Client中Main方法进行调用;

 

二.    通过Maven中CXF插件

1.    添加CXF依赖及插件

(1)    在pom文件中加入以下依赖

 

org.apache.cxf
cxf-rt-frontend-jaxws
org.apache.cxf
cxf-rt-transports-http

 

 

(2)    加入cxf插件,配置wsdl所在位置及代码生成存放位置

 

org.apache.cxf
cxf-codegen-plugin
${cxf.version}
${basedir}/target/generated-sources/cxf
${basedir}/src/main/resources/wsdl/soapservice.wsdl

 

 

2.    生成接口编写实现

(1)    生成接口

执行 mvn cxf-codegen:wsdl2java,后在项目/target/generated-sources/cxf下会生成服务器端代码,将需要的Domain和服务端点接口(SEI)拷贝到项目中;
(2)    添加实现类实现SEI
添加SEI的实现类,并在该类上添加注解@WebService,参数如下:
serviceName 值与 SEI的@WebService注解中name属性值相同
targetNamespace值与 SEI的@WebService注解中targetNamespace属性值相同
endpointInterface 值为SEI的全限定名

 

如果需要配置记录他们的每一个日志消息可以在实现类上添加注解@Features

 

可以或Endpoint发布web services。

 

3.    通过Sping发布

(1)    Web.xml

 

(2)    Sping配置 

 

(3)    启动

启动web项目访问XXX/cxf/ 可以看到wsdl地址如图,点击wsdl后的连接则可以看到wsdl文件内容

 

 

 4.    客户端代码生成及访问

将通过执行mvn cxf-codegen:wsdl2java生成的代码全部拷贝至客户端项目中,创建main方法进行访问,方法如下:

 

三.    对比结果说明

两种方式从根本上来讲都是通过CXF中wsdl2java.exe的调用,但还是存在以下一些区别:

(1)    通过IDE生成的整体过程更简单,代码直接生成至指定包下;通过Maven插件需要手动拷贝文件;
(2)    Maven生成的结果文件中,服务器端缺少SEI的实现类,客户端缺少调用SEI的实现类,而用IDE生成的情况下,这两个类全部存在。
综上,我认为通过IDE生成基于WSDL契约优先的web services服务器端和客户端代码更方便快捷。

 

 

 

 

转载地址:http://ymyci.baihongyu.com/

你可能感兴趣的文章
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
AngularJS2中最基本的文件说明
查看>>
从头开始学习jsp(2)——jsp的基本语法
查看>>
使用与或运算完成两个整数的相加
查看>>
备忘:java中的递归
查看>>
DIV/CSS:一个贴在左上角的标签
查看>>
Solr及Spring-Data-Solr入门学习
查看>>
Vue组件
查看>>
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>