java链接webservice wsdl修改wsdl文件后出现的问题

16:49 提问
axis1.4调用webservice 传递自定义对象参数出错
调用客户端后出现:
org.xml.sax.SAXException: Invalid element in cn.services.QueryEquipmentRequest - queryEquipmentRequest
客户端代码(其中queryEquipmentRequest,QueryEquipmentResponse是我自定义的对象):
call.addParameter(new QName(nameSpace, "queryEquipmentRequest"), new QName(nameSpace, "queryEquipmentRequest"), ParameterMode.IN);
// @@需修改成对应的输出参数名
call.setReturnType(new QName(nameSpace, "queryEquipmentResponse"),
QueryEquipmentResponse.class);
// 需要根据xsd生成的bean,对输入输出的XSD文件定义的类型进行注册映射关系
// @@如本服务输入输出XSD文件中有四个自定义类型 queryEquipmentRequest、queryEquipmentResponse、deviceItem、deviceItemList,配置如下
QName queryEquipmentRequest = new QName(nameSpace, "queryEquipmentRequest");
call.registerTypeMapping(QueryEquipmentRequest.class, queryEquipmentRequest,
new BeanSerializerFactory(QueryEquipmentRequest.class,
queryEquipmentRequest), new BeanDeserializerFactory(
QueryEquipmentRequest.class, queryEquipmentRequest));
QName queryEquipmentResponse = new QName(nameSpace, "queryEquipmentResponse");
call.registerTypeMapping(QueryEquipmentResponse.class, queryEquipmentResponse,
new BeanSerializerFactory(QueryEquipmentResponse.class,
queryEquipmentResponse), new BeanDeserializerFactory(
QueryEquipmentResponse.class, queryEquipmentResponse));
服务端的wsdl文件为:
&!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, :48 PDT)--&wsdl:types
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐服务器维护中.......
我们会尽快恢复,请稍后再试,谢谢!博客分类:
//不用通过wsdl生成类来调用ws,采用发送soap包的方式,动态调用,很方便
import org.apache.cxf.endpoint.C
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientF
import org.springframework.context.support.ClassPathXmlApplicationC
public class TestMain {
public static void main(String[] args) {
String xmlInput = "&?xml version=\"1.0\" encoding=\"UTF-8\"?&&request&&operateType&query
&/operateType&&dbType&sqlserver&/dbType&&orderBy&&/orderBy&&userId&1&/userId&
&start&0&/start&&limit&20&/limit&&processName&&/processName&&/request&";
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
String wsUrl = "地址"
String method = "findAllUser";
Client client = dcf.createClient(wsUrl);
Object[] res =
res = client.invoke(method, xmlInput);
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
浏览 10628
lumingming1987
浏览: 72805 次
来自: 深圳
水晶报表写代码过程太繁琐,帆软报表直接一气呵成更好
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'其他回答(1)
以前曾经做过个简单的WCF客户端调用的例子
收获园豆:5
园豆:25175
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。webservice解析wsdl出错解决办法
今天遇到了WebService的问题:在使用jdk命令wsimport根据生成java文件的时候报错了:无法将名称
's:schema' 解析为 'element declaration'
第一步:将xml文件下载下来
第二步:修改xml文件,将文件中所有出现&s:element ref="s:schema"/&&s:any/&的地方全部使用 &s:any
minOccurs="2" maxOccurs="2"/&替换掉。
第三步:使用wsimport解析本地文件即可。
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!}

我要回帖

更多关于 webservice wsdl调用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信