PB调用WebService遇到的问题

今天用PB调用WebService时,遇到了十分不解的问题,我WebService中的方法都使用单元测试验证过的,但用PB调用时,方法中的参数上传到WebService始终是null。(报的异常: System.NullReferenceException: Object reference not set to an instance of an object)我调用WebService的代码为:
if dw_1.rowcount() = 0 then return
cashcarteinfo cartelist[]

cartelist
= dw_1. object .data

cashcarteiteminfo carteitemlist[]

datastore ldst_carteitem
ldst_carteitem
= create datastore
ldst_carteitem.dataobject
= ' d_carteitem '
ldst_carteitem.settransobject( sqlca)
ldst_carteitem.retrieve( idt_uptime)

carteitemlist
= ldst_carteitem. object .data
destroy ldst_carteitem

SoapConnection conn
cashservice cashweb


long rVal
conn
= create SoapConnection
rVal
= Conn.CreateInstance(cashweb, " cashservice " , " http://localhost/WebService/Service.asmx " )
try
string ls = space( 500 )
long stationid
stationid
= 1
if cashweb.uploadcarte( cartelist, carteitemlist, stationid, ref ls) = true then
Messagebox(
'' , ' succes ' )
else
Messagebox(
' fail ' ,ls)
end
if

catch ( SoapException e )
messagebox (
" Error " , " Cannot invoke Web service~r~n " + e.getmessage( ) ) // error handling
end try
destroy cashweb
destroy conn

经过过反复的调试,终于发现问题所在。我上传的参数是一个结构体数组,在给结构体赋值时,如果结构体的某一字段赋了null,上传到WebService后,整个对象(结构体)都会为null。找到了原因,问题迎刃而解!

另附PB调用WebService调试的方法:

将Vs.Net 的WebService启动调试,让它处于调试状态,并设好WebService的断点;再调试PB程序,只要PB调用的WebService方法在Vs.Net 中有断点,就会自动进入Vs.Net 的环境中查看参数的传递情况。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值