Apache CXF tools 并没有依赖具体的XercesImpl,而是使用Java5里面的默认的实现。 但如果你的classpath里面有其他版本的XercesImpl, 那么在
这个版本之前,你只能看到类似的输出结果了:UnsupportedOperationException
<link rel="stylesheet" type="text/css" href="http://maomaode.bokeland.com/plugins/plogeshi/styles/plogeshi.css">原因是XercesImpl 版本(2.6.2) 并不支持DocumentBuilderFactory.setSchema, CXF的代码里面用这个方法来校验toolspec的document, 为了支持这个版本,我们放弃了schema validation, 正如你看到的
- this.parserFactory.setSchema(this.schema);
+ try {
+ this.parserFactory.setSchema(this.schema);
+ } catch (UnsupportedOperationException e) {
+ LOG.log(Level.WARNING, "DOC_PARSER_NOT_SUPPORTED", e);
+ }
这样做还是无法满足其他版本的XercesImpl(2.7.1 以上的版本), 因为没有setSchema的支持,
doc.getElementById(id);
将会返回null, 因为这个id是被定义在schema里面的
<attribute name="id" type="ID" use="optional"/""">
所以这里就必须用XPath了,而事实上我认为xpath是最好的从dom里面取信息的方法了
我想这篇文章中所提到的几个观点正好从这个例子里面得到了印证
那就是
* schema 校验应该遵循 “严以待己,宽以待人” (a.k.a Postel’s law)
发送消息前进行校验,因为schema是你自己的, 在接受消息的时候,尽量避免进行schema校验, 同样的,在生产系统上尽量避免schema 校验
* 使用XPath来获取信息
避免使用getElementId这样的方法, 而多采用XPath, 因为前者很可能返回null
分享到:
相关推荐
Apache CXF 框架是一个比较有前途的开源 Web Services 框架,也是构建 SOA 架构应用的利器。本书采用案例源码和解说形式全面介绍 Apache CXF 框架的功能。 本书共 15 章,大致分为三个部分。第一部分介绍关于 SOA 和...
Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF Apache CXF
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...
2013版的 <基于Apache CXF构建SOA应用> 源码 Apache CXF是一个开放源码的Web服务框架,提供了一个易于使用,用于开发Web Services标准为基础的编程模型。本书主要介绍Apache CXF在构建SOA架构各个方面的应用说明和...
apache cxf 2.1.3 的用户手册
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。
Apache CXF Web Service Development Developing+Web+Services+with+Apache+CXF+and+Axis2+(3rd+Edition)
Apache CXF Web Service Development
apache cxf 一个helloworld的例子
webserviceApache CXF java springboot利用Apache CXF创建webserice接口 Apache CXF 核心架构是以BUS为核心,整合其他组件。 * Bus是CXF的主干, 为共享资源提供一个可配置的场所,作用类似于Spring的...
apache cxf 3.1.8 java web service 开源框架
Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了,以下简称为 CXF。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且...
Apache CXF Web Service Development 源码
java通过cxf实现webservice所需jar包。java通过cxf实现webservice所需jar包。
apache-cxf 2.2.8 支持webservice 反正生成服务端代码,附带一个文本文件。希望有需要的小伙伴可以下载来看。
Apache cxf 与spring集成
Apache Cxf 安全认证,includes some source code to test