一. 通过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服务器端和客户端代码更方便快捷。
相关推荐
通过以上步骤,你可以理解并实现WCF服务器端和客户端的基本交互。在实际开发中,还可以根据需求调整服务配置,实现更复杂的功能,如异步调用、队列通信、WSDL导出等。记住,实践是掌握WCF的关键,尝试创建自己的服务...
它支持多种协议和标准,如JAX-WS(Java API for XML Web Services)、JAX-RS(Java API for RESTful Web Services)以及WSDL(Web服务描述语言)。CXF通过将Web服务接口与实现绑定,使得开发人员可以轻松地创建和...
Axis通过这个WSDL文件理解服务的结构并生成必要的客户端和服务器端代码。 部署Web Service的步骤如下: 1. **安装Apache Axis**:首先,你需要从Apache官方网站下载并安装Axis。安装完成后,将Axis的bin目录添加到...
服务器工程会定义一个或多个服务接口,这些接口以WSDL(Web服务描述语言)文档的形式公开,描述了服务的可用操作、输入和输出参数以及它们的数据类型。WSDL文件是XML格式的,它为客户端提供了服务的元数据,使客户端...
- **契约优先或代码优先**:客户端开发可以选择契约优先(基于WSDL生成客户端代码)或代码优先(基于Java接口生成WSDL)的方式。 ### 4. RESTful服务与CXF 除了传统的SOAP服务,CXF还支持RESTful API的开发。你可以...
7. **Client消费WebService**:在客户端,我们可以使用`WebServiceTemplate`来调用服务器端的SOAP服务。这个模板类提供了一种灵活的方式,用于发送和接收SOAP消息。 8. **测试**:项目中提到“本地可运行,实现本地...
本文主要介绍了Spring Web Services的基本概念、为什么选择契约先行(Contract First)的方式以及如何创建基于契约先行的Web服务。同时,文档还涉及了Spring-WS的一些高级功能,包括如何在客户端使用Spring Web ...
综上所述,这个压缩包提供的内容涵盖了SOA的基本概念、WSDL的使用、TCPmoniter作为网络调试工具的应用,以及通过wsimport生成Java Web服务客户端和服务器端代码的实践。配合视频教程,将为学习者提供一套完整的SOA...
契约优先的开发方式意味着先定义服务的接口(通常是WSDL或Schema),然后根据这些定义自动生成服务端和客户端代码。 异常处理在Web服务中是必不可少的,我们可以通过创建自定义异常类并在WSDL中定义对应的元素来...
它提供了一整套工具,用于生成客户端和服务器端的代码,包括从WSDL到Java代码的反向工程。Axis支持多种Web服务协议,如WS-I Basic Profile、WS-Security等。虽然Axis2是其较新的版本,但CXF在许多方面已经超越了Axis...
5. **Spring Boot与Spring Cloud Contract**:结合Spring Boot的快速开发特性,Spring Cloud Contract可以用于生成服务器端的WebService接口以及客户端的测试桩。这种方式强调了消费者驱动的契约,确保服务提供者和...
- **Axis框架运用**:Axis提供了强大的工具集,用于生成客户端存根和服务器端实现,大大简化了Web Service的开发过程。 - **MyEclipse集成优势**:MyEclipse作为一款功能丰富的IDE,不仅提供了WSDL设计和代码生成的...
它支持WSDL第一和契约第一的开发模式,可以生成客户端和服务器端的代码。 服务端开发的关键点还包括: - **安全性**:通过HTTPS、WS-Security等机制保证通信安全,防止数据被窃取或篡改。 - **事务管理**:确保多...
此外,Spring框架也提供了对WebService的支持,如Spring-WS,它允许更灵活的XML消息处理和契约优先的开发方式。 在实验中,"SOA与WebService技术实验资料包+书pdf"可能包含了关于如何设计、实现和测试SOA服务以及...
3. **Spring-WS**:Spring Web Services项目专注于基于契约的WebService开发,它基于WSDL,提供了一种模型驱动的方式来创建SOAP服务。 4. **GWT (Google Web Toolkit)**:虽然主要用于创建客户端富互联网应用程序,...
JAX-WS RI包含了服务器端和客户端的API,以及工具,如WSDL生成器和SOAP消息处理器。 **服务的创建与发布** 使用JAX-WS,服务可以通过以下步骤创建和发布: 1. **定义服务接口**:使用`@WebService`注解定义一个...
它允许开发者通过创建XSD schema来定义服务接口,然后自动生成服务器端的SOAP处理代码和客户端的代理类。Spring-WS还支持WS-Security等Web服务安全标准,确保数据传输的安全性。 另一方面,Apache CXF是另一个流行...
3. **自动代码生成**: Axis提供了一个wsdl2java工具,可以从WSDL文件自动生成Java客户端和服务器端代码,极大地简化了开发流程。 4. **模块化架构**:Axis1.4的架构允许添加和扩展自定义模块,以满足特定的业务需求...
1. **SOAP与WSDL**:Web Service使用SOAP(Simple Object Access Protocol)作为消息交换格式,WSDL(Web Services Description Language)用于描述服务接口和契约。 2. **服务发现与调用**:通过UDDI(Universal ...