[置顶] spring CXF配置以及WSDL的详解
来源:互联网 发布:知乎 有趣 编辑:程序博客网 时间:2024/06/05 21:53
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文件中加语句:
在classpath下加入 spring-cxf.xml 内容:
在cxf-2.2.x版本中需要加入cxf目录下的三个文件 而2.6.x则只需要加cxf.xml和cxf-servlet.xml
千万别忘记address中的 / 非常关键
webservice接口
WEBSERVICE实现类
访问路径
http://localhost:8080/项目名/services/xxWebService?wsdl
成功后点击你所要的接口。然后生成wsdl文件。
转换代码之前需要安装
apache-cxf-2.7.3
然后把生成的文件转换成java代码,转换代码的命令如下:
上面生成的文件放在C盘下面。
客户端访问
每个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.xsdhttp://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;@WebServicepublic 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"));}
0 0
- [置顶] spring CXF配置以及WSDL的详解
- 【WebService】wsdl配置详解以及使用注解修改wsdl配置
- WebService里的wsdl的详解以及使用注解修改wsdl的配置
- Spring的配置以及详解
- CXF学习03---WSDL详解
- 解决cxf+spring发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 解决cxf+spring发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 详解CXF与Spring的整合
- CXF的Spring注解配置及使用
- CXF的Spring注解配置及使用
- cxf的spring启动测试配置
- CXF与Spring集成的简单配置
- CXF(2) 客户端的开发, WSDL解析
- CXF-04: CXF 的本质,解析 WSDL 文档
- webservice CXF整合spring服务端测试并生成wsdl文件
- CXF+Spring发布WebService 以及 对WebService的调用
- WSDL的详解
- [置顶] web.xml 配置详解
- 实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法
- Spark 入门知识学习
- [置顶] UML中的一些小知识
- 统计一个自然数的二进制表示形式中有多少个1
- http://blog.csdn.net/uxyheaven/article/details/49253757
- [置顶] spring CXF配置以及WSDL的详解
- [置顶] web.xml 配置详解
- [置顶] SSL(Secure Sockets Layer 加密套接字协议层)安全认证
- js 中常用的正则表达式
- eclipse 部署:Project facet Java version 1.7 is not supported
- 传统Java Web(非Spring Boot)、非Java语言项目接入Spring Cloud方案
- [置顶] Java Observer与Observable实现观察者模式
- 移动APP测试用例设计实践经验
- Lintcode17 Subsets solution 题解