转载地址:http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html

前几天公司要接入国外公司的一个业务功能,对方是提供的net产生的webservice,阿堂在用cxf的wsdl2java命令生成客户端的测试代码时,出现了如下故障

WSDLToJava Error: Thrown by JAXB:undefined element declaration 's:schema'

于是阿堂(网络时空)在网上查询大量资料和不断实践摸索后,最后发现了如下两种解决方法,希望阿堂(网络时空)的解决过程和总结,能对其它网友解决类似问题,提供借签和参考作用。
第一种方式(仍用cxf 解决)
step1
http://test.payserv.net/Paygate/ccservice.asmx?WSDL对应的内容另存为 ccservice.wsdl

这里要特别说明的是,只能通过网页中另存为ccservice.wsdl,不能简单的将网页中的复制后,再粘贴到一个文本文件中,另存为ccservice.wsdl,这样即使经过下述的step2后,仍然会报错

step2
首先将 ccservice.wsdl文件中的如下内容进行如下替换
即将 <s:element ref="s:schema"/><s:any /> 替换成<s:anyminOccurs="2" maxOccurs="2"/>

这样处理后,再次运行wsdl2java又报了如下错误

阿堂经过仔细查看和分析,原来在ccservice.wsdl文件中,有queryResponse 和
QueryResponse 两个名字的定义,可能在net中webservice是不区分大小写的,但是在java中生成webservice的客户端时,又是区分大小写的,所以会报上述错误。针对此,阿堂(网络时空)于时将其中的QueryResponse的名字改为了QueryResponse1,且
ccservice.wsdl文件中将所有引用QueryResponse的地方也改成了QueryResponse1。。然后再将运行就一切ok啦





阿堂总结一下

在用cxf的wsdl2java命令处理net或其它语言产生的webservice时,如出现报错,要仔细观察报错信息的描述,通过自己思考和查询网络资源,有针对性的修改,一定是可以解决的。

第二种方式(用axis的webservice框架 解决)

从阿堂(网络时空)的测试来看,不需要任何修改即可生成websercie的客户端

不过,要需要axis如下一些jar包才能保证axis产生的webservice的客户端代码正常运行

阿堂总结一下

如果用时候发现用cxf的wsdl2java命令不能正常执行时,不妨考用axix之类的其它webservice框架来解决问题,换一个角度去解决问题。

调用方式

Ccservice ccservice = new Ccservice();

CcserviceSoap ccserviceSoap = ccservice.getCcserviceSoap();

ccserviceSoap.query(参数1,参数2,...);

Java调用net的webservice故障排除实战分享的更多相关文章

  1. java调用第三方的webservice应用实例

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  2. java调用第三方的webservice应用实例【转载】

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...

  3. java调用.net的webservice

    目录(?)[-] 一参考文献 二概述 三实例 注意点   一.参考文献 1. http://www.cnblogs.com/xuqifa100/archive/2007/12/13/993926.ht ...

  4. 转 java调用php的webService

    1.首先先下载php的webservice包:NuSOAP,自己到官网去下载,链接就不给出来了,自己去google吧    基于NoSOAP我们写了一个php的webservice的服务端,例子如下: ...

  5. Java 调用 C/C++ 之 JNA 系列实战篇 —— 输出char * (六)

    一. 工作环境 1. windows (64位), JDK (64位),dll文件 (64位) 2. Linux (64位),      JDK (64位),so文件 (64位) 3. JNA的官方资 ...

  6. java调用.net的webservice接口

    要调用webservice,首先得有接口,用已经写好的接口地址在myEclipse的目标project中,右键->new web service client-> 选择JAX-WS方式,点 ...

  7. Java调用ASP.NET的webservice故障排除

    公司要接入其它公司的一个业务功能,对方是提供的 .net产生的webservice,在用cxf的wsdl2java命令生成客户端的测试代码时,出现了如下故障WSDLToJava Error: Thro ...

  8. java 调用wsdl的webservice接口 两种调用方式

    关于wsdl接口对于我来说是比较头疼的 基本没搞过.一脸懵 就在网上搜 看着写的都很好到我这就不好使了,非常蓝瘦.谨以此随笔纪念我这半个月踩过的坑... 背景:短短两周除了普通开发外我就接到了两个we ...

  9. java调用.net的webservice[转]

    一.引用jar包. 完整包路径:http://files.cnblogs.com/files/chenghu/axis完整jar包.rar 二.java程序代码如下所示: package edu.sj ...

随机推荐

  1. 计算广告-GD广告

    算法 分配算法主要是解优化问题. 流量预测(traffic forecasting), 流量预估 库存分配, 粗力度的分配. 流量分配, 排单算法 在线分配(Online Allocation) 资料 ...

  2. js获取指定日期n天之后的日期

    function addDays(date, days,seperator='-') { let oDate = new Date(date).valueOf(); let nDate = oDate ...

  3. 自动化运维工具ansible中常用模块总结

    1.yum模块: name:要操作的软件包名字,可以是一个url或者本地rpm包路径,如name=nginx update_cache:更新软件包缓存,如update_cache=yes则更新软件包缓 ...

  4. cafe-ssd數據集訓練

    训练方式::https://blog.csdn.net/xiao_lxl/article/details/79106837 caffe-ssd训练自己的数据集 https://blog.csdn.ne ...

  5. Linux--shell 脚本免密码输入

    参考:https://www.cnblogs.com/lixigang/articles/4849527.html #!/bin/bash ssb=" password=mysql data ...

  6. 洛谷 P1341 无序字母对(欧拉回路)

    题目传送门 解题思路: 一道欧拉回路的模板题,详细定理见大佬博客,任意门 AC代码: #include<cstdio> #include<iostream> using nam ...

  7. JavaWeb部分视频\2-12JSP,EL和JSTL

    JavaWeb知识结构图 第3节 EL介绍和运算符 && 第4节 EL获取域中存储的数据 ## EL表达式 1. 概念:Expression Language 表达式语言 2. 作用: ...

  8. Python—快速排序算法

    # _*_ coding=utf-8 _*_ """ 快速排序: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比 另外一部分的所有数据都要小,然后 ...

  9. console.log和alert的区别

    alert是同步的,如果不关闭弹出框,js代码就不会继续执行下去,这时候浏览器啥都干不了. console.log不会打断js的执行. 当要输出几十几百条信息的时候还是得用console.log,而且 ...

  10. C++随机迷宫生成[转载]

    原文:http://tieba.baidu.com/p/2596809144 #include<iostream.h> #include"time.h" #includ ...