`

基于WSDL契约优先的web services服务器端和客户端开发方式

 
阅读更多

一.    通过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文件中加入以下依赖

 

<!-- cxf -->
<dependency>
	<groupId>org.apache.cxf</groupId>
	<artifactId>cxf-rt-frontend-jaxws</artifactId>
</dependency>
<dependency>
	<groupId>org.apache.cxf</groupId>
	<artifactId>cxf-rt-transports-http</artifactId>
</dependency>

 

 

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

 

<!-- cxf wsdl2java 插件 -->
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<configuration>
    <sourceRoot>${basedir}/target/generated-sources/cxf</sourceRoot>
    <wsdlOptions>
	<wsdlOption>
	    <wsdl>${basedir}/src/main/resources/wsdl/soapservice.wsdl</wsdl>
	</wsdlOption>
    </wsdlOptions>
</configuration>
</plugin>

 

 

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服务器端和客户端代码更方便快捷。

 

 

 

 

  • 大小: 44.7 KB
  • 大小: 36.3 KB
  • 大小: 19.9 KB
  • 大小: 27.1 KB
  • 大小: 21.7 KB
  • 大小: 33 KB
  • 大小: 45.1 KB
  • 大小: 31.3 KB
分享到:
评论

相关推荐

    WCF服务器端与客户端的操作实例

    通过以上步骤,你可以理解并实现WCF服务器端和客户端的基本交互。在实际开发中,还可以根据需求调整服务配置,实现更复杂的功能,如异步调用、队列通信、WSDL导出等。记住,实践是掌握WCF的关键,尝试创建自己的服务...

    CXF 框架实战代码---服务器端WebServices接口

    它支持多种协议和标准,如JAX-WS(Java API for XML Web Services)、JAX-RS(Java API for RESTful Web Services)以及WSDL(Web服务描述语言)。CXF通过将Web服务接口与实现绑定,使得开发人员可以轻松地创建和...

    用axis布置webServices详细步骤

    Axis通过这个WSDL文件理解服务的结构并生成必要的客户端和服务器端代码。 部署Web Service的步骤如下: 1. **安装Apache Axis**:首先,你需要从Apache官方网站下载并安装Axis。安装完成后,将Axis的bin目录添加到...

    使用webservice实现客户端与服务器通信,

    服务器工程会定义一个或多个服务接口,这些接口以WSDL(Web服务描述语言)文档的形式公开,描述了服务的可用操作、输入和输出参数以及它们的数据类型。WSDL文件是XML格式的,它为客户端提供了服务的元数据,使客户端...

    CXF Web Service & client

    - **契约优先或代码优先**:客户端开发可以选择契约优先(基于WSDL生成客户端代码)或代码优先(基于Java接口生成WSDL)的方式。 ### 4. RESTful服务与CXF 除了传统的SOAP服务,CXF还支持RESTful API的开发。你可以...

    webservice 服务器和客户端系统代码

    7. **Client消费WebService**:在客户端,我们可以使用`WebServiceTemplate`来调用服务器端的SOAP服务。这个模板类提供了一种灵活的方式,用于发送和接收SOAP消息。 8. **测试**:项目中提到“本地可运行,实现本地...

    spring-ws-reference.pdf

    本文主要介绍了Spring Web Services的基本概念、为什么选择契约先行(Contract First)的方式以及如何创建基于契约先行的Web服务。同时,文档还涉及了Spring-WS的一些高级功能,包括如何在客户端使用Spring Web ...

    SOA wsdl 简单基础项目加讲解

    综上所述,这个压缩包提供的内容涵盖了SOA的基本概念、WSDL的使用、TCPmoniter作为网络调试工具的应用,以及通过wsimport生成Java Web服务客户端和服务器端代码的实践。配合视频教程,将为学习者提供一套完整的SOA...

    JAVA的WebService支持.rar

    它提供了一整套工具,用于生成客户端和服务器端的代码,包括从WSDL到Java代码的反向工程。Axis支持多种Web服务协议,如WS-I Basic Profile、WS-Security等。虽然Axis2是其较新的版本,但CXF在许多方面已经超越了Axis...

    对WebService的系统研究, 七种方式实现!

    5. **Spring Boot与Spring Cloud Contract**:结合Spring Boot的快速开发特性,Spring Cloud Contract可以用于生成服务器端的WebService接口以及客户端的测试桩。这种方式强调了消费者驱动的契约,确保服务提供者和...

    MyEclipse下开发Web Service(Axis)

    - **Axis框架运用**:Axis提供了强大的工具集,用于生成客户端存根和服务器端实现,大大简化了Web Service的开发过程。 - **MyEclipse集成优势**:MyEclipse作为一款功能丰富的IDE,不仅提供了WSDL设计和代码生成的...

    webservice服务端

    它支持WSDL第一和契约第一的开发模式,可以生成客户端和服务器端的代码。 服务端开发的关键点还包括: - **安全性**:通过HTTPS、WS-Security等机制保证通信安全,防止数据被窃取或篡改。 - **事务管理**:确保多...

    SOA与WebService技术实验资料包.zip

    此外,Spring框架也提供了对WebService的支持,如Spring-WS,它允许更灵活的XML消息处理和契约优先的开发方式。 在实验中,"SOA与WebService技术实验资料包+书pdf"可能包含了关于如何设计、实现和测试SOA服务以及...

    webService服务端

    3. **Spring-WS**:Spring Web Services项目专注于基于契约的WebService开发,它基于WSDL,提供了一种模型驱动的方式来创建SOAP服务。 4. **GWT (Google Web Toolkit)**:虽然主要用于创建客户端富互联网应用程序,...

    JAXWS2.2-20091203.zip

    JAX-WS RI包含了服务器端和客户端的API,以及工具,如WSDL生成器和SOAP消息处理器。 **服务的创建与发布** 使用JAX-WS,服务可以通过以下步骤创建和发布: 1. **定义服务接口**:使用`@WebService`注解定义一个...

    spring+webservice

    它允许开发者通过创建XSD schema来定义服务接口,然后自动生成服务器端的SOAP处理代码和客户端的代理类。Spring-WS还支持WS-Security等Web服务安全标准,确保数据传输的安全性。 另一方面,Apache CXF是另一个流行...

    Axis1.4 开发指南1.0中文版.

    3. **自动代码生成**: Axis提供了一个wsdl2java工具,可以从WSDL文件自动生成Java客户端和服务器端代码,极大地简化了开发流程。 4. **模块化架构**:Axis1.4的架构允许添加和扩展自定义模块,以满足特定的业务需求...

    ASP.NET与Web Service实例剖析中文版.ppt

    1. **SOAP与WSDL**:Web Service使用SOAP(Simple Object Access Protocol)作为消息交换格式,WSDL(Web Services Description Language)用于描述服务接口和契约。 2. **服务发现与调用**:通过UDDI(Universal ...

Global site tag (gtag.js) - Google Analytics