公司要接入其它公司的一个业务功能,对方是提供的 .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:any minOccurs="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调用ASP.NET的webservice故障排除的更多相关文章

  1. Android客户端调用Asp.net的WebService

    Android客户端调用Asp.net的WebService 我来说两句 |2011-11-23 13:39:15 在Android端为了与服务器端进行通信有几种方法:1.Socket通信2.WCF通 ...

  2. Java调用IIS发布的WebService

    之前的一篇博客说了一个实例,就是用VS2005在IIS上发布WebService.今天我们来实现在Eclipse上用Java来调用昨天发布的WebService. 首先咋在浏览器中输入http://1 ...

  3. Java调用net的webservice故障排除实战分享

    转载地址:http://blog.sina.com.cn/s/blog_4c925dca01014y3r.html 前几天公司要接入国外公司的一个业务功能,对方是提供的net产生的webservice ...

  4. java 调用 wsdl形式的webservice 示例

    import java.rmi.RemoteException; import javax.xml.rpc.ParameterMode; import javax.xml.rpc.ServiceExc ...

  5. java调用c#开发的webservice

    使用jdk自带的wsimport工具生成代理类 c:\Program Files\Java\jdk1..0_121\bin>wsimport -keep -encoding utf- -d d: ...

  6. java调用peoplesoft提供的webservice接口

    使用到了soapui,apache-cxf,eclipse 1.使用soapui测试提供的地址有效性(如果没有soapui也可以直接在cmd命令行中使用wsdl2java命令生成客户端代码) wsdl ...

  7. java调用oracle数据库发布WebService

    package com.hyan.service; import java.io.FileInputStream;import java.sql.Connection;import java.sql. ...

  8. java 调用webservice的各种方法总结

    java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...

  9. java调用.net的webservice

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

随机推荐

  1. System call in linux by C

    1: #include <stdlib.h> 2: int system(const char *command); 3:  4: while (something) { 5: int r ...

  2. windows phone 7 中怎样定义和使用资源(Resource)

    1. 系统资源. 在wp7开发中可以看到很多使用系统资源(resource)的例子,例如默认的新page: http://blog.csdn.net/matrixcl/article/details/ ...

  3. 基于SpringMVC框架项目Demo

    Git地址:https://github.com/JavaWeb1024/SpringMVC 1.     框架简介: 为打造一套集群高可用的框架,集成的技术目前比较成熟,稳定.相关的知识点在网络上也 ...

  4. Lvs+keepalived+nginx+php的session 保持的算法

    ●什么是会话保持,有什么作用 会话保持是指在负载均衡器上有一种机制,在作负载均衡的同时,还保证同一用户相关连的访问请求会被分配到同一台服务器上. 会话保持有什么作用呢,举例说明一下 如果有一个用户访问 ...

  5. Mock模拟后台数据接口--再也不用等后端的API啦

    ok,在开发中经常需要从后台获取数据,那么有时候后台的数据接口并没有写好,所以这时候,就需要自己模拟数据接口,来实现前端逻辑, 今天数的就是阿里巴巴的一款mock产品,很好用的哦!!!! ok!这是我 ...

  6. C# 取整

    double a = 1.1478; Math.Celling(a): 向上取整,结果为2 Math.Float(a); 向下取整,结果为1 Math.Round(a,2);  保留两位小数的奇进偶舍 ...

  7. IIS 301 跳转

    IIS设置301重定向 IIS服务器下做301永久重定向设置方法. IIS6设置301重定向: 1.新建一个站点,对应目录如E:\wwwroot\301web.该目录下只需要1个文件,即index.h ...

  8. 【新产品发布】【GK101 10MHz任意波发生器】

    简介: GK101 10MHz掌上任意波形发生器基于多项先进技术,在较小的体积上实现了普通台式仪器才具有的功能.仪器仅手掌大小,实现了80M采样率.10MHz最大频率.10Vpp最高幅度的输出. 仪器 ...

  9. Scrum会议1(Beta版本)

    组名:天天向上 组长:王森 组员:张政.张金生.林莉.胡丽娜 代码地址:HTTPS:https://git.coding.net/jx8zjs/llk.git SSH:git@git.coding.n ...

  10. HTML5 javascript CSS3 jQuery Mobile一些好用的网站

    jQueryMobile:学习 http://www.runoob.com/jquerymobile/jquerymobile-tutorial.html 百度 CDN: http://cdn.cod ...