欢迎来到天天文库
浏览记录
ID:6378925
大小:69.50 KB
页数:6页
时间:2018-01-12
《推荐使用.net调用java编写的webservice方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、推荐使用.NET调用java编写的WebService方法如果.NET调用WebService,最简单的办法当然是直接添加WEB引用,然后自动产生代理类,但是在调用JAVA的WebService时并没有这么简单,特别是对于SoapHeader的处理。先说说的思路:1、先用soapUI进行测试,这个工具会自动生成调用某个方法的XML。2、把soapUI生成的XML作为模版,自己也生成一个一模一样的XML并为参数节点赋好值。3、将这个XML通过http直接发送给WebService。4、接收返回的XML进行处理。 这样做最大的好处就是可以自己很轻松的控制XM
2、L格式,最开始的时候我是通过添加引用的方式去调用某个方法一直失败,但是用soapUI去测试这个方法又是可以成功调用的,折腾了半天,最后通过抓包的方式对发送的数据进行对比,发现两者发送的XML相差甚远,好了废话不说了,就拿一个小实例来演示这个过程吧。 首先,通过soapUI工具测试调用WebService里一个名为getPopCheckedInfo的方法,生成的XML如下: soapUI生成的XML [http://www.xueit.com]3、g/soap/envelope/"xmlns:ws="http://ws.pop.wsif.cogent.com/">4、s-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">用户名密码5、open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">qTW5ajMAEp4o9BiSvcczNA==2010-05-24T07:02:10.531Z参数6、opCheckedInfo> 上面三个用汉字标示的地方就是我们要修改赋值的地方,大家看到了吧,如果用添加引用自动生成代理类的方式,要产生这样格式的XML有多难控制了吧,但是如果全部用代码来生成也不是一件容易的事,个人用了一个比较巧妙的办法:在项目中添加一个名为“getPopCheckedInfo”的xml文件,将上面的XML粘贴上去,然后再将这个XML文件作为内嵌资源(在这个的文件属性里面的‘生产操作’选择‘嵌入的资源’),使用的时候直接加载这个XML文件,然后修改那3个节点的值就可以了7、(用户名和密码一般都预先确定的,也可以直接写在XML文件里,调用的时候就只要对那一个参数赋值了)。使用内嵌资源是为了不让外面看到我们的那个XML文件,以防被修改了什么的。下面看看调用的代码实现吧:(为了理解方便清晰,我们用跟WebService上一模一样的方法名和参数) Code [http://www.xueit.com]//////根据居民id获取该居民信息//////居民idpublicstaticPeoplegetPopCheckedInfo(stringid)8、{StringServerUrl=Config.GetWebServerURL(
3、g/soap/envelope/"xmlns:ws="http://ws.pop.wsif.cogent.com/">4、s-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">用户名密码5、open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">qTW5ajMAEp4o9BiSvcczNA==2010-05-24T07:02:10.531Z参数6、opCheckedInfo> 上面三个用汉字标示的地方就是我们要修改赋值的地方,大家看到了吧,如果用添加引用自动生成代理类的方式,要产生这样格式的XML有多难控制了吧,但是如果全部用代码来生成也不是一件容易的事,个人用了一个比较巧妙的办法:在项目中添加一个名为“getPopCheckedInfo”的xml文件,将上面的XML粘贴上去,然后再将这个XML文件作为内嵌资源(在这个的文件属性里面的‘生产操作’选择‘嵌入的资源’),使用的时候直接加载这个XML文件,然后修改那3个节点的值就可以了
4、s-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">用户名密码5、open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">qTW5ajMAEp4o9BiSvcczNA==2010-05-24T07:02:10.531Z
5、open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">qTW5ajMAEp4o9BiSvcczNA==2010-05-24T07:02:10.531Z
6、opCheckedInfo>
7、(用户名和密码一般都预先确定的,也可以直接写在XML文件里,调用的时候就只要对那一个参数赋值了)。使用内嵌资源是为了不让外面看到我们的那个XML文件,以防被修改了什么的。下面看看调用的代码实现吧:(为了理解方便清晰,我们用跟WebService上一模一样的方法名和参数) Code [http://www.xueit.com]//////根据居民id获取该居民信息//////居民idpublicstaticPeoplegetPopCheckedInfo(stringid)
8、{StringServerUrl=Config.GetWebServerURL(
此文档下载收益归作者所有