- 浏览: 697697 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
解决cxf+bboss发布的webservice缺少<wsdl:types>和<wsdl:message>标签的问题
- 博客分类:
- bboss aop
- quick start
cxf+bboss发布webservice服务(cxf+bboss发布webservice服务方法请参考文档:
bbossgroups webservice引擎使用方法),服务发布成功,查看其wsdl文件的时候却缺少<wsdl:types>和<wsdl:message>标签,例如:
认真看发布后的wsdl文件,发现多了<wsdl:import>标签:
将<wsdl:import>标签中的location拿出去在浏览器中打开,里面是“丢失”的两个标签,这时候就发现其实并不是丢失了,而是包含在了<wsdl:import>标签内
为什么会包含在了<wsdl:import>标签内?仔细查看生成的wsdl,发现<wsdl:definitions>标签内的targetNamespace属性和<wsdl:import>中namespace属性的值不同,这就是原因所在,发布服务时,接口类和服务实现类的@Webservice注解中没有指定targetNamespace为一个名称或者没有指定时(cxf发布服务时会默认将类和接口的包路径反转,然后作为targetNamespace的值),就会导致上述现象,最终解决方案:
1,将接口类和实现类放在同一个包下,问题即可解决
2,将接口类和实现类中的注解中加入命名空间属性配置,@WebService(targetNamespace="XXXXX"),两个配置值保持一致即可
实现类:
接口定义:
bbossgroups webservice引擎使用方法),服务发布成功,查看其wsdl文件的时候却缺少<wsdl:types>和<wsdl:message>标签,例如:
<?xml version="1.0" encoding="UTF-8" ?> - <wsdl:definitions name="MaterialWServiceImplService" targetNamespace="http://impl.webservice.material.mms.sany.com/" xmlns:ns1="http://webservice.material.mms.sany.com/" xmlns:ns2="http://schemas.xmlsoap.org/wsdl/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.webservice.material.mms.sany.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:import location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList?wsdl=MaterialWService.wsdl" namespace="http://webservice.material.mms.sany.com/" /> - <wsdl:binding name="MaterialWServiceImplServiceSoapBinding" type="ns1:MaterialWService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> - <wsdl:operation name="queryAwaitTaskByUserNum"> <soap:operation soapAction="" style="document" /> - <wsdl:input name="queryAwaitTaskByUserNum"> <soap:body use="literal" /> </wsdl:input> - <wsdl:output name="queryAwaitTaskByUserNumResponse"> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> - <wsdl:service name="MaterialWServiceImplService"> - <wsdl:port binding="tns:MaterialWServiceImplServiceSoapBinding" name="MaterialWServiceImplPort"> <soap:address location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
认真看发布后的wsdl文件,发现多了<wsdl:import>标签:
<wsdl:import location="http://10.8.135.224:8081/SanyMMS/cxfservices/queryTaskList?wsdl=MaterialWService.wsdl" namespace="http://webservice.material.mms.sany.com/" />
将<wsdl:import>标签中的location拿出去在浏览器中打开,里面是“丢失”的两个标签,这时候就发现其实并不是丢失了,而是包含在了<wsdl:import>标签内
为什么会包含在了<wsdl:import>标签内?仔细查看生成的wsdl,发现<wsdl:definitions>标签内的targetNamespace属性和<wsdl:import>中namespace属性的值不同,这就是原因所在,发布服务时,接口类和服务实现类的@Webservice注解中没有指定targetNamespace为一个名称或者没有指定时(cxf发布服务时会默认将类和接口的包路径反转,然后作为targetNamespace的值),就会导致上述现象,最终解决方案:
1,将接口类和实现类放在同一个包下,问题即可解决
2,将接口类和实现类中的注解中加入命名空间属性配置,@WebService(targetNamespace="XXXXX"),两个配置值保持一致即可
实现类:
package org.frameworkset.web.ws; import javax.jws.WebService; /** * <p>Title: WSServiceImpl.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2011-4-24 * @author biaoping.yin * @version 1.0 */ @WebService(targetNamespace="org.frameworkset.web.ws") public class WSServiceImpl implements WSService{ public String sayHello(String duoduo) { if(duoduo == null) return ""; else return duoduo; } }
接口定义:
package org.frameworkset.web.ws; import javax.jws.WebService; /** * <p>Title: WSService.java</p> * <p>Description: </p> * <p>bboss workgroup</p> * <p>Copyright (c) 2008</p> * @Date 2011-4-24 * @author biaoping.yin * @version 1.0 */ @WebService(targetNamespace="org.frameworkset.web.ws") public interface WSService { public String sayHello(String duoduo) ; }
发表评论
-
bboss ioc快速入门教程
2017-08-13 11:28 1281bboss是一个非常不错的ioc框架,功能类似于spr ... -
bboss ioc配置文件中使用外部属性文件介绍
2016-09-20 11:35 1150bboss ioc配置文件中使用外部属性文件介绍 与spri ... -
bboss与spring中配置和引用bboss数据源和bboss dao组件方法说明
2016-08-10 16:04 921首先在项目中导入bboss 持久层包: maven坐标 & ... -
bboss ioc提供的组件初始化工具类介绍
2016-03-18 16:17 741bboss ioc提供的组件初始化工具类介绍 bboss i ... -
扩展bboss ioc语法实现自定义的ioc依赖注入功能
2015-01-20 23:08 1336bboss ioc配置语法简洁而严谨,提供了强大的依赖注入功能 ... -
bboss开发、模块工程目录结构及功能说明
2014-10-15 19:46 4912基于bboss开发项目说明 ... -
bboss序列化cglib代理对象方法介绍
2014-06-22 15:14 1181本文介绍bboss序列化cglib代理对象方法。经过cglib ... -
bboss自定义类对象序列化机制介绍
2014-05-26 23:32 1476bboss自定义类对象序列 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1659bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1094bboss发布apache cxf 2.7.6服务和定义客户端 ... -
扩展Activiti-5.12轻松实现流程节点间自由跳转和任意驳回/撤回
2013-05-28 01:33 17967由于项目需要,最近对开源工作流引擎Activiti-5.12的 ... -
bboss离线开发文档下载
2013-05-14 18:08 1870bboss离线开发文档下载 为了便于bboss开发人员离线查找 ... -
bboss 发布和使用hessian服务方法介绍
2013-02-25 23:21 2122hessian是一款性能非常不错的RPC通讯组件,最近抽空将b ... -
bboss quartz组件全攻略
2013-01-27 13:31 2637bboss quartz组件全攻略 本 ... -
bboss aop拦截器使用简介
2012-11-29 23:20 1214bboss aop拦截器使用简介, ... -
bboss持久层事务管理组件TransactionManager增加两个release方法
2012-08-25 11:56 1560bboss持久层事务管理组件TransactionManage ... -
bboss ioc容器之间组件引用方法简介
2012-08-04 15:09 1349bboss ioc容器之间组件引用方法简介。我们可以在ioc容 ... -
Rest协议框架-bboss rpc
2012-08-03 12:51 1365restful风格rpc服务协议rest,定义的语法如下: ... -
Bboss国际化实践PPT
2012-06-10 12:52 1394Bboss国际化实践PPT,点击链接即可下载: Bboss国际 ... -
bboss mvc文件上传下载新增功能详解
2012-05-16 22:35 1659bboss mvc文件上传下载新增功能详解 1.概述 最近对 ...
相关推荐
- **`<wsdl:types>`**:这部分用于定义数据类型,即输入输出参数的结构。这些类型可以是简单的如字符串或整型,也可以是复杂的自定义类型。 - **`<xs:schema>`**:用于定义XSD(XML Schema Definition)中的元素和...
- **作用**:用于标记 WebService 方法,定义了该方法在 WSDL 文件中的 `<wsdl:operation>` 元素。 - **operationName**:指定 `<wsdl:operation>` 元素的名称。 - **SOAPAction**:指定客户端请求时需要使用的 ...
6. **WSDL的结构与元素**:理解WSDL文件的结构至关重要,其中包括`<wsdl:types>`定义数据类型,`<wsdl:message>`定义通信消息,`<wsdl:portType>`定义服务接口,`<wsdl:binding>`定义通信方式,以及`<wsdl:service>`...
当将两者结合使用时,可以方便地在Spring应用中发布和消费Web服务。本例主要探讨如何使用CXF和Spring4.1来发布一个基于SOAP的Web服务。 首先,我们需要确保环境已经准备就绪。在项目中引入CXF和Spring的依赖库,...
它是通过`<wsdl:definitions>`中的`<wsdl:message>`和`<wsdl:portType>`元素定义的。 - `<wsdl:message>`: 描述了构成操作的消息结构,包括输入和输出消息的数据类型。 - `<wsdl:portType>`: 定义了服务端口的操作...
开发者可以使用各种工具,如Apache Axis2、CXF和XFire等,来生成和处理WSDL文档,简化Web服务的开发和部署流程。 总之,WSDL文件是Web服务的重要组成部分,它定义了服务的接口、消息结构和通信机制,为服务的发现、...
springboot+cxf实现webservice示例 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org....
<wsdl:message name="getResultRequest"> <!-- Message定义 --> </wsdl:message> <wsdl:message name="getResultResponse"> <!-- Message定义 --> </wsdl:message> <wsdl:portType name="HelloWorldPortType...
**基于CXF的Web服务发布及访问** ...通过本教程的学习,你应该能够独立完成基于CXF的Web服务发布和客户端调用。如果你需要深入学习,可以查看CXF官方文档和其他相关教程,了解更多高级特性和最佳实践。
`<wsdl:types>`元素是用来定义数据类型的,这通常是通过引入XML Schema(XSD)来完成的。在这个例子中,有两个复杂的类型被定义:`sayHello`和`sayHelloResponse`。`sayHello`表示一个输入参数,它是一个名为`in0`的...
<wsdl:message ...> <!-- 定义消息格式 --> </wsdl:message> <wsdl:portType ...> <!-- 定义操作 --> </wsdl:portType> <wsdl:binding ...> <!-- 绑定操作到具体的消息格式 --> </wsdl:binding> <wsdl:...
标题 "cxf+spring=webservice CXF 应用开发" 暗示了我们将讨论如何结合Apache CXF和Spring框架来创建Web服务。Apache CXF是一个开源的Java框架,主要用于构建和部署SOAP和RESTful Web服务。Spring框架则是一个广泛...
总结,"CXF+Jetty发布WebService"是一个将Java服务接口通过CXF转换成Web服务,并使用Jetty作为服务器的实践过程。CXF简化了服务开发,而Jetty提供了轻量级的运行环境。理解并掌握这一技术栈,对于开发基于Java的...
以上是CXF+Spring实现Web Service的基本流程和关键知识点。实际应用中,还需要根据具体的需求和环境进行适当的调整和扩展。例如,如果涉及到大型分布式系统,可能还需要考虑服务治理、负载均衡等问题。通过熟练掌握...
在实践中,理解并调试CXF和Spring的源码可以帮助我们更好地解决问题,优化性能,以及定制化服务行为。 至于“工具”标签,这可能指的是开发者可能会用到的一些辅助工具,例如IDE(如IntelliJ IDEA或Eclipse)、构建...
本项目“cxf+spring发布webservice和restservice”专注于利用Apache CXF框架与Spring框架结合,实现这两种服务的发布。Apache CXF是一个开源的、功能丰富的服务栈,它使得开发者能够轻松地构建和部署SOAP和RESTful ...
当我们谈论"CXF3.0.9+SPRING开发webservice例子"时,这意味着我们将探讨如何结合这两个强大的工具来创建和消费Web服务。 首先,让我们深入了解CXF。Apache CXF是基于Java的,它支持多种Web服务标准,如SOAP、...
### 使用CXF发布和调用WebService之HelloWorld入门详解 #### 一、概述 本文将详细介绍如何使用Apache CXF框架来实现一个简单的WebService——HelloWorld示例。此示例不仅适用于初学者理解WebService的基本概念,...
这个项目"Spring+CXF+tomcat开发webservice"旨在教你如何利用这些技术搭建一个完整的Web服务环境,包括服务端和服务端客户端的实现。 **Spring** 是一个广泛使用的Java企业级应用开发框架,它提供了依赖注入(DI)...
本文将详细介绍如何为CXF与Spring整合发布WebService添加拦截器进行权限控制。 首先,我们需要理解CXF拦截器的概念。拦截器是CXF提供的一种机制,它允许我们在Web服务调用的生命周期中的不同阶段插入自定义逻辑,如...