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

转载 2015年11月21日 11:07:22

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

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

 

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

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

 

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

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

 

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

 

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

 

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

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

 

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

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

 

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

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

 

 

 

阿堂总结一下

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

 

 

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

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

 

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

 

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

 

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

阿堂总结一下

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

 

调用方式
Ccservice ccservice = new Ccservice();
CcserviceSoap ccserviceSoap = ccservice.getCcserviceSoap();
ccserviceSoap.query(参数1,参数2,...);


 

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

出现错误:WSDLToJava Error: Thrown by JAXB: undefined element declaration 's:schema'  第一种方式(仍用cxf ...
  • u011186019
  • u011186019
  • 2014年11月30日 13:58
  • 949

java调用.net发布webservice心得

之前做.net,发布、引用webservice很容易,最近转做java,需要调用.net发布的webservice,感觉很容易,于是网上找了几种方案,放上来分享给大家。 WebService地址:ht...
  • elvis_gao
  • elvis_gao
  • 2015年11月26日 14:56
  • 4042

ASP.NET调用JAVA的CXF生成的Webservice,并带有Soapheader验证的解决方案

本文并不讲述怎么搭建CXF,网上相关资料比较多,不再赘述。 下面直接开始讲解在ASP.NET中怎么调用CXF生成的Webservice,并处理Soapheader验证。 1、 添加web引用 ...
  • lilinjian2001
  • lilinjian2001
  • 2015年11月13日 10:49
  • 2661

C# 调用java写的WebService返回信息

群里问的一个问题 C# 调用java写的WebService返回信息,之前他一直没调用成功。返回的是worng soap header 错误。 参考别人的代码然后自己有改了下。代码少多了。 java ...
  • kongwei521
  • kongwei521
  • 2014年01月22日 17:27
  • 5293

java 调用.net webservice 带soap验证头消息方式

java调用.net webservice soap验证信息
  • baidu_16217779
  • baidu_16217779
  • 2015年09月07日 11:27
  • 796

WebService通信调用天气预报,Java

天气预报实例: 首先,得知道天气预报的接口: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl 其次,调用接口,把接口...
  • zhangyunfeixyz
  • zhangyunfeixyz
  • 2017年05月09日 15:49
  • 632

java调用webservice接口 几种方法

转载自http://af8991.iteye.com/blog/1702741 webservice的 发布一般都是使用WSDL(web service descriptive language)文件...
  • qq_35124535
  • qq_35124535
  • 2017年03月15日 15:31
  • 11639

关于java调用webservice参数传递为空问题

通过Myeclipse10.0 jdk1.7调用VS2012 webService遇到java客户端参数传递不过去的问题,搞了一下午终于出结果了,其实网上好多方法都只是一部分,需要综合一下。   客户...
  • a944977890
  • a944977890
  • 2013年10月16日 23:45
  • 3990

java利用axis2调用.net写的webservice,传递自定义的实体类参数

java利用axis2调用.net写的webservice,传递自定义的实体类参数
  • strong_wenzi
  • strong_wenzi
  • 2016年04月27日 19:14
  • 2088

REST风格WebService调用客户端

1. 客户端接口 package com.http.client; /** * * Http客户端接口 * @author ypqiao * */ public interface...
  • qiaoyupeng
  • qiaoyupeng
  • 2013年06月01日 20:15
  • 2589
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java调用net的webservice故障排除实战分享
举报原因:
原因补充:

(最多只允许输入30个字)