PB调用WebService遇到的问题

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 的环境中查看参数的传递情况。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值