webservice生成客户端时提示解析组件 's:schema' 时出错原因
2016-11-25 15:28
1326 查看
错误提示:
[WARNING] src-resolve.4.2: 解析组件 ‘s:schema’ 时出错。在该组件中检测到 ‘s:schema’ 。。。
在网上搜了半天,都是说要替换什么内容之类的,但也没说为什么,而且基本都是转载国外某人的一个文章,然而并没有说明原因。下面就一步步来查找原因:
根据错误提示似乎是找不到s:schema,查看了一下.net生成的wsdl文件,在文件头部有s:schema命名空间的定义:
xmlns:s=http://www.w3.org/2001/XMLSchema
但同时也发现CXF生成的wsdl文件也用到了类似的元素,只不过定义的命名空间名称略有差异:xmlns:xs=http://www.w3.org/2001/XMLSchema
因此基本可以排除找不到s:schema元素的问题原因肯定不是XML本身定义的问题了。
紧接着又看了下wsdl的引入是否会存在版本问题,在对比了JAVA和.NET的WSDL文件后,感觉版本也应该是一致的。因此wsdl的版本原因也可以排除。
http://schemas.xmlsoap.org/wsdl/ (java)
http://schemas.xmlsoap.org/wsdl/soap/ (.net)
经过思考,决定从“在一个xml配置文件中ref表示什么意思“这个思路入手。查了一篇老外的文章后,大致明白了其作,ref相当于一个引用的意思,具体可见如下例子:
当明白了ref的作用后,我很自然地就想到wsdl2java是通过JAXB解析wsdl文件的,那会不会是JAXB目前还不支持ref 这种元素的解析呢,从网上找到一篇文章 还是ORACLE官网上的“xsd:element ref not working with jaxb”似乎为我的想提供了佐证,在国外的一些文章上对待这样的错误有如下的解决办法:用替代 ,我试了下果然可以,因此我基本上可以个人武断地认为这个wsdl2java的生成错误应该是和JAXB不支持xml的ref有关。因为
和其实是等价的。其实就是说这里可以用s:schema规定的任意一种元素类型来替代,正是起到了这个作用。
只不过是把两个写成了一句罢了。
[WARNING] src-resolve.4.2: 解析组件 ‘s:schema’ 时出错。在该组件中检测到 ‘s:schema’ 。。。
在网上搜了半天,都是说要替换什么内容之类的,但也没说为什么,而且基本都是转载国外某人的一个文章,然而并没有说明原因。下面就一步步来查找原因:
根据错误提示似乎是找不到s:schema,查看了一下.net生成的wsdl文件,在文件头部有s:schema命名空间的定义:
xmlns:s=http://www.w3.org/2001/XMLSchema
但同时也发现CXF生成的wsdl文件也用到了类似的元素,只不过定义的命名空间名称略有差异:xmlns:xs=http://www.w3.org/2001/XMLSchema
因此基本可以排除找不到s:schema元素的问题原因肯定不是XML本身定义的问题了。
紧接着又看了下wsdl的引入是否会存在版本问题,在对比了JAVA和.NET的WSDL文件后,感觉版本也应该是一致的。因此wsdl的版本原因也可以排除。
http://schemas.xmlsoap.org/wsdl/ (java)
http://schemas.xmlsoap.org/wsdl/soap/ (.net)
经过思考,决定从“在一个xml配置文件中ref表示什么意思“这个思路入手。查了一篇老外的文章后,大致明白了其作,ref相当于一个引用的意思,具体可见如下例子:
<element name="foo"> <complexType> <element ref="a:bar"/> </complexType> </element> <element name="bar" type="string"/> <element name="foo"> <complexType> <element name="bar" type="string"/> </complexType> </element>
当明白了ref的作用后,我很自然地就想到wsdl2java是通过JAXB解析wsdl文件的,那会不会是JAXB目前还不支持ref 这种元素的解析呢,从网上找到一篇文章 还是ORACLE官网上的“xsd:element ref not working with jaxb”似乎为我的想提供了佐证,在国外的一些文章上对待这样的错误有如下的解决办法:用替代 ,我试了下果然可以,因此我基本上可以个人武断地认为这个wsdl2java的生成错误应该是和JAXB不支持xml的ref有关。因为
和其实是等价的。其实就是说这里可以用s:schema规定的任意一种元素类型来替代,正是起到了这个作用。
只不过是把两个写成了一句罢了。
相关文章推荐
- webservice 出错 解析组件 's:schema' 时出错。在该组件中检测到 's:schem
- webService学习6:解析组件 's:schema' 时出错。在该组件中检测到 's:schem
- android开发生成apk后在真机上安装出错-提示解析包出现问题和无法安装
- 关于cxf 连.net 的webservice生成客户端异常( undefined element declaration 's:schema')
- eclipse编译android开源代码示范,及生成jar引用出错原因解析
- 使用axis2解析wsdl反向生成webservice客户端
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析) Webservice的wsdl文件解析与Soap消息的发送、接收(不生成java客户端代码)
- xfire生成webservice客户端 发生xfire undefined element declaration 's:schema' 错误
- 使用axis2解析wsdl生成Webservice客户端代码
- 使用axis2解析wsdl生成Webservice客户端代码
- 普元 EOS Platform 7.5 将逻辑流封装为webservice,wsdl文件上右键,生成客户端代码,提示:选择的wsdl文件中没有服务信息
- 使用axis2解析wsdl生成Webservice客户端代码
- Webservice的wsdl文件解析与Soap消息的发送、接收(不生成java客户端代码)
- 使用axis2解析wsdl反向生成webservice客户端代码
- 关于cxf 连.net 的webservice生成客户端异常( undefined element declaration 's:schema')
- Eclipse插件生成webservice客户端调用代码
- 用axis在eclipse中new出webService client生成客户端,调用远程webservice接口的方法
- Jbuilder的webservice客户端测试程序的自动生成技术
- CR——“无法为提示检索值列表”出错原因
- WCF生成客户端对象方式解析