WSDL它是一种用XML来描述网络服务的语言。
每个wsdl都定义了一项服务(service),而这项服务被定义为一组“端口(port)”。你可以把wsdl中的端口想象为URL地址,而不是TCP/IP中的数据通道。一个端口定义了一个”服务”项目的提供地点。
一项服务可以有多个提供地点,但只能对一组事先安排好的“信息(message)”作出响应。“信息”是对通信数据的描述,每条信息由一组数据组成,这些数据必须定义为收发双方都知道的某种“类型(type)”。如果没有遇到其他方法更能说明问题的情况,则”类型”必须用XSD来定义。端口和信息结合在一起代表了一组“操作(operation)”,并定义了这个端口的“端口类型(portType)”。把一种协议和一种数据格式关联在一起就定义了一种可重复使用的“绑定(binding)”。把一个网络地址和一个绑定关联在一起就定义出了一个端口,而一组端口将定义出一项服务。综上所述,wsdl文档使用下面这些元素来定义一项网络服务:
Type:数据类型定义的包容器。对类型的描述可以用xsd来完成。
Message:定义通信中的数据。包括数据输入和输出。
Operation:对某项服务所能完成的一个动作进行的抽象定义。
Port:由一个绑定和一个网络地址所定义的一个端点。
PortType:对一个或多个端口所支持的一组操作进行描述。
Binding:为一个给定的端口类型安排协议和数据格式。
Service:由一组相互关联的端口所构成的一个聚合。
首先在web.xml文件中加语句:
<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
在classpath下加入 spring-cxf.xml 内容:
在cxf-2.2.x版本中需要加入cxf目录下的三个文件 而2.6.x则只需要加cxf.xml和cxf-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<!-- 例子 -->
<bean id="xxWebService" class="com.xx.WebServiceImpl">
<property name="xxService" ref="xxService"/>
</bean>
<jaxws:endpoint
id="xxWebService"
implementor="#xxWebService"
address="/xxWebService" />
<!-- implementor是上面bean的id address为访问WSDL文件的地址 -->
<!--http://localhost:8080/项目名/services/xxWebService?wsdl- ->
</beans>
<!-- END SNIPPET: beans -->
千万别忘记address中的 / 非常关键
webservice接口
package com.xx.webservice.xxWebService ;
import javax.jws.WebService;
@WebService
public interface xxWebService {
public String Allxx(xx);
}
WEBSERVICE实现类
import javax.jws.WebService;
//endpointInterface里面的参数是web接口完整路径
@WebService(endpointInterface = "com.xx.webservice.xxWebService")
public class xxWebServiceImpl implements xxWebService{
private xxService xService;
public String Allxx(xx) {
String xx = xxService.getAllxx(xx);
return xx;
}
}
访问路径
http://localhost:8080/项目名/services/xxWebService?wsdl
成功后点击你所要的接口。然后生成wsdl文件。
转换代码之前需要安装
apache-cxf-2.7.3
然后把生成的文件转换成java代码,转换代码的命令如下:
c:wsdl2java -frontend jaxws21 F:\SecTelephoneService.wsdl
上面生成的文件放在C盘下面。
客户端访问
public static void main(String[] args) {
JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();
// 获取服务器端
factoryBean.setAddress("http://localhost:8080/RestFulServer/services/xxWebService");
// 通过客户端的接口获取服务器端的接口
factoryBean.setServiceClass(FirstCxfService.class);
FirstCxfService hello = (FirstCxfService) factoryBean.create();
System.out.println(hello.sayHello("和谐dota"));
}
分享到:
相关推荐
7. **服务部署**:生成WSDL后,可以通过CXF的Servlet或Spring配置将服务部署到应用服务器上,供客户端调用。 8. **客户端生成**:CXF还支持从WSDL生成Java客户端代码,使得调用Web服务变得更加简单,只需按照生成的...
**Spring CXF实例详解** Spring CXF 是一个融合了Spring框架和Apache CXF服务的集成解决方案,它使得在Spring环境中构建和消费Web服务变得更加简单。Apache CXF 是一个开源的Web服务框架,提供了多种方式来创建和...
【CXF与Spring整合Web服务详解】 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和部署Web服务。它提供了丰富的功能,包括SOAP、RESTful API的支持,以及与Spring框架的深度集成。本篇文章将深入探讨...
3. **配置CXF**:在Spring配置文件中配置CXF,包括服务端点地址、服务类等。 ```xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:...
【Spring+CXF请求WebService详解】 在Java开发领域,Spring框架以其强大的依赖注入和面向切面编程能力被广泛应用,而CXF则是一个优秀的开源服务开发框架,支持SOAP和RESTful服务。当Spring与CXF结合使用时,可以...
【CXF整合Spring详解】 CXF(CXF stands for "CXF is not just an XFire fork", but was originally named XFire)是一个开源的Java框架,它提供了服务导向架构(SOA)和Web服务的实现。CXF使得开发人员能够轻松地...
Spring 和 CXF 集成详解 在 IT 开发领域,Spring 框架和 CXF 服务框架的集成是构建高效、灵活的企业级应用程序的重要技术。Spring 提供了一个全面的编程和配置模型,用于构建现代 Java 应用程序,而 CXF 是一个流行...
压缩包中的jar文件可能包括了CXF的核心库、Spring框架的核心库、以及它们之间的适配器和依赖。例如: - CXF的相关jar:cxf-api.jar、cxf-rt-frontend-jaxws.jar、cxf-rt-transports-http.jar等,用于处理Web服务的...
- 创建Spring配置文件(如`applicationContext.xml`),配置数据源、Hibernate SessionFactory以及Struts2的Action代理等。 - 添加CXF的依赖,包括`cxf-rt-frontend-jaxws`和`cxf-rt-transports-http`,并配置CXF...
**Spring集成CXF详解** Spring框架是Java领域中广泛使用的轻量级开源框架,它以其IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性深受开发者喜爱。而CXF则是一个强大的Web服务开发框架,它...
5. **配置CXF服务**:在Spring的XML配置文件中,使用`<jaxws:endpoint>`元素来定义CXF服务端点,指定服务接口、实现类以及服务地址。也可以通过`<jaxrs:server>`元素来配置RESTful服务。 6. **部署与测试**:将配置...
这些通常包括CXF的核心库、Spring的核心库以及相关依赖,如JAXB(Java Architecture for XML Binding)用于XML到Java对象的转换,以及其他的XML解析库。 4. **步骤详解**: - **创建服务接口**:首先定义一个Java...
本文将深入探讨CXF与Spring如何整合,以及如何在Tomcat环境下部署Web服务。 #### 一、CXF与Spring整合概述 **CXF**是Apache旗下的一个开源框架,主要用于构建和消费基于SOAP、REST等协议的Web服务。它提供了一套...
### 生成WebService服务端的方法详解 #### 前言 在日常开发中,通常是由开发团队构建WebService服务端,客户端则通过服务端提供的WS-Definition Language (WSDL) 文件生成客户端代理并进行交互。但有时也会遇到特殊...
1. Spring配置文件中声明服务:在Spring配置文件中,可以通过`<jaxws:endpoint>`或`<jaxws:client>`元素声明CXF服务端或客户端。 2. 使用Spring Bean:将CXF服务端或客户端作为Spring Bean,通过依赖注入的方式在...
**WebService CXF 详解** **一、WebService简介** WebService是一种基于标准的,可以在不同操作系统、编程语言之间交换数据的Web应用程序。它通过WSDL(Web服务描述语言)定义了服务接口,利用SOAP(简单对象访问...
Apache CXF 是一个开源的Java框架,主要用于构建和开发Web服务。版本2.4.3是该框架的一个历史版本,提供了丰富的功能和改进。...通过对WSDL的处理以及对各种Web服务标准的支持,CXF简化了开发过程,提高了开发效率。