不知道发布端(即服务器端)是哪种发布技术的情况下,客户端使用axis去调用,报错:unexpected element (uri:" Expected elements are <
不知道发布端(即服务器端)是哪种发布技术的情况下,客户端使用axis去调用,报错:
{http://xml.apache.org/axis/}stackTrace:Unmarshalling Error: unexpected element (uri:"http://XX.XX.XX.XX.XX.com/", local:"arg0"). Expected elements are <{}arg0>
找了很久,突然发现一片文章,跟我的情况完全一样。
http://t22011787.iteye.com/blog/1144662 问题出在: 解决方法: 使用与cxf发布端匹配的cxf客户端方式去调用。 |
之前问过服务器端用的什么技术,那边说:是CXF集成的,其实应该就是实现了jax-ws ,反馈的截图如下。
我理解原来他们使用的就是jax-ws方式,其实不是。。。
虽然cxf和jax-ws有一定关系,甚至cxf是基于jax-ws的,但是,但是,cxf和jax-ws是两种不同的技术和方式。
所以使用axis客户端调用cxf服务器端即发布端,是不行的,得使用cxf客户端代码去调用cxf接口。
总结:
1webservice的发布方式不同(axis、jax-ws、cxf等),客户端调用方式也不一样,即客户端代码也不一样。
2所以下一次,在写客户端的调用程序之前,一定要搞清楚服务器端(即发布端)的使用的什么发布方式,然后再对应的书写客户端代码。