【发布时间】:2016-12-15 20:31:15
【问题描述】:
我正在尝试使用nusoap 客户端和普通SoapClient 调用GetHotels 函数,调用该函数时遇到问题,它返回以下错误:
Uncaught SoapFault exception: [a: InternalServiceFault] Object reference not set to an instance of an object.
我将此代码与nusoap_client一起使用
$client = new nusoap_client("http://amandaws.absolutent.it/Booking.svc" , 'wsdl');
$bodyxml =('<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:oas="http://docs.oasisopen.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:tem="http://tempuri.org/">
<soapenv:Header>
<oas:Security>
<oas:UsernameToken>
<oas:Username>XXX</oas:Username>
<oas:Password>XXX</oas:Password>
</oas:UsernameToken>
</oas:Security>
</soapenv:Header>
<soapenv:Body>
<tem:BGH_Request Language="IT">
<tem:Criteria HotelCode="FID001" IDRegione="" IDProvincia="" IDComune="" IDLocalita="" IDLineaProdotto="" IDZona="" MaxResults="200" />
</tem:BGH_Request>
</soapenv:Body>
</soapenv:Envelope>');
$client->soap_defencoding = 'utf-8';
$client->operation = "GetHotels";
$result = $client->send($client->serializeEnvelope($bodyxml), "http://tempuri.org/IBooking/GetHotels");
print_r($result);
当我打印 $result 时,我得到这个数组消息
Array
(
[faultcode] => a:InternalServiceFault
[faultstring] => Array
(
[!xml:lang] => en-GB
[!] => Object reference not set to an instance of an object.
)
[detail] => Array
(
[ExceptionDetail] => Array
(
[HelpLink] =>
[InnerException] =>
[Message] => Object reference not set to an instance of an object.
[StackTrace] => at Absolute.Web.Common.UoW.TransactionService.InTrasaction(Action actionbeBeforeCommit)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.IBookingProxy.GetHotels(BookingGetHotelsMessageRequest request)
at SyncInvokeGetHotels(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
[Type] => System.NullReferenceException
)
)
)
如果有人帮助我,我会很好
【问题讨论】:
标签: php web-services soap wsdl nusoap