ERROR #5001: <ZSOAP>zInvokeClient+349^websrv.eAssessWS.wsMethodsSoap.1
SOURCE ELEMENT: LTD.ComponentLibrary.ListWithNavBar (eAssessPatList)
Its looks like its the SearchAndGetPersonDetails Method thats failing,
it logs into the service and logs out okay.
debugging in studio is proving fruitless.
HEEEEEELLLLLLPPPPPP PLease
Class websrv.eAssessWS.wsMethodsSoap Extends %SOAP.WebClient
[ ProcedureBlock ]
{
/// This is the URL used to access the web service.
Parameter LOCATION = "http://*****/eAssessServices/
eAssessServices.Services/wsMethods.asmx";
/// This is the namespace used by the Service
Parameter NAMESPACE = "http://eAssessServices.Services/";
/// Use xsi:type attribute for literal types.
Parameter OUTPUTTYPEATTRIBUTE = 1;
/// This is the name of the Service
Parameter SERVICENAME = "wsMethods";
/// Headers expected in the response message.
Parameter SOAPHEADERS =
"UserCredentialsHeader:websrv.eAssessWS.UserCredentialsHeader";
/// This service supports both SOAP 1.1 and SOAP 1.2.
Parameter SOAPVERSION;
Method InsertReferral(referralSO As websrv.eAssessWS.ReferralSO) As
%String [ Final, ProcedureBlock = 1, SoapBindingStyle = document,
SoapBodyUse = literal, WebMethod ]
{
Quit ..WebMethod("InsertReferral").Invoke(##this,"http://
eAssessServices.Services/InsertReferral",.referralSO)
}
Method LogOut() As %String [ Final, ProcedureBlock = 1,
SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
Quit ..WebMethod("LogOut").Invoke(##this,"http://
eAssessServices.Services/LogOut")
}
Method RegisterTrakUser(trakRegSO As websrv.eAssessWS.TrakRegisterSO)
As %Boolean [ Final, ProcedureBlock = 1, SoapBindingStyle = document,
SoapBodyUse = literal, WebMethod ]
{
Quit ..WebMethod("RegisterTrakUser").Invoke(##this,"http://
eAssessServices.Services/RegisterTrakUser",.trakRegSO)
}
Method SearchAndGetPersonDetails(findPersonSO As
websrv.eAssessWS.FindPersonSO) As
%ListOfObjects(ELEMENTTYPE="websrv.eAssessWS.PersonResultSO",XMLITEMNAME="PersonResultSO",XMLNAME="SearchAndGetPersonDetailsResult")
[ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse
= literal, WebMethod ]
{
Quit ..WebMethod("SearchAndGetPersonDetails").Invoke(##this,"http://
eAssessServices.Services/SearchAndGetPersonDetails",.findPersonSO)
}
Method SearchPersonsReferrals(personId As %xsd.int) As
%ListOfObjects(ELEMENTTYPE="websrv.eAssessWS.ReferralResultSO",XMLITEMNAME="ReferralResultSO",XMLNAME="SearchPersonsReferralsResult")
[ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse
= literal, WebMethod ]
{
Quit ..WebMethod("SearchPersonsReferrals").Invoke(##this,"http://
eAssessServices.Services/SearchPersonsReferrals",.personId)
}
Method TrakLogin(trakLogin As websrv.eAssessWS.LoginSO) As %String
[ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse
= literal, WebMethod ]
{
Quit ..WebMethod("TrakLogin").Invoke(##this,"http://
eAssessServices.Services/TrakLogin",.trakLogin)
}
}
%zobjlasterror whenever you get a <ZSOAP> fault. Typically this will tell you the underlying cause.
> --
> You received this message because you are subscribed to the Google Groups "InterSystems: Zen Community" group.
> To post to this group, send email to InterSys...@googlegroups.com
> To unsubscribe from this group, send email to InterSystems-Z...@googlegroups.com
> For more options, visit this group at http://groups.google.com/group/InterSystems-ZEN?hl=en
> Zen Community Terms and Conditions: http://groups.google.com/group/InterSystems-ZEN/web/community-terms-and-conditions
On Mar 12, 2010, at 7:19 AM, Minikiev wrote:
d $System.OBJ.DisplayError(%objlasterror)
ERROR #6248: SOAP response is a SOAP fault: faultcode=Server
faultstring=Server was unable to process request. ---> Object
reference not set to an instance of an object.
faultactor=
detail=
w %objlasterror
0 å h – faultcode=Server
faultstring=Server was unable to process request. ---> Object
reference not set to an instance of an object.
faultactor=
detail= B zProcessSOAPEnvelope+80^websrv.eAssessWS.wsMethodsSoap.
1:LTD-DEV
I’d get a tcpTrace and maybe get one from .NET as well to compare.
It would be good though to put some error trapping at my end, its
allready implemented at the .net end
Has anyone ever used this (Copied from the Zen documentation)
Im not sure how to go about coding this.
>>logging the SOAP Calls
>>To log the SOAP calls made to or from a Caché namespace, set the following nodes of the ^ISCSOAP global:
>>ISCSOAP("Log") Specifies kind of logging. Use one of the following values:
>>"i" — General input information
>>"o" — General input information
>>"s" — Security information
>>You can also use a string that contains any combination of these values, for example: "ios"
>>^ISCSOAP("LogFile") Specifies the complete path and filename of the log file to create.
-----Original Message-----
From: intersys...@googlegroups.com [mailto:intersys...@googlegroups.com] On Behalf Of Minikiev
Sent: Friday, March 12, 2010 3:49 PM
To: InterSystems: Zen Community
Subject: [InterSystems-Zen] Re: SOAP Error Hell
Thanks Alex good suggestions we cant use that software in here
though.
We did get to the bottom of it though and as suggested it was a .net
error.
It would be good though to put some error trapping at my end, its
allready implemented at the .net end
Has anyone ever used this (Copied from the Zen documentation)
Im not sure how to go about coding this.
>>logging the SOAP Calls
>>To log the SOAP calls made to or from a Caché namespace, set the following nodes of the ^ISCSOAP global:
>>ISCSOAP("Log") Specifies kind of logging. Use one of the following values:
>>"i" - General input information
>>"o" - General input information
>>"s" - Security information
>>You can also use a string that contains any combination of these values, for example: "ios"
>>^ISCSOAP("LogFile") Specifies the complete path and filename of the log file to create.
--
Thanks
Dan
Daniel Plenderleith
Application Developer
E-Health Department
Residency Block 3/7
1st Floor
St Johns Hospital
Howden
Livingston
EH54 6PP
Internal Telephone: 53491
*****************************************************************
The information contained in this message may be confidential or
legally privileged and is intended for the addressee only. If you
have received this message in error or there are any problems
please notify the originator immediately. The unauthorised use,
disclosure, copying or alteration of this message is
strictly forbidden.
*****************************************************************
For error trapping on the service side you'd be using standard SOAP faults - on the client side you can use try/catch or old school ZTRAP error trapping to trap the incoming faults and check for SOAP faults specifically - the documentation should explain both of these.
ISCSOAP will log incoming and outgoing SOAP requests - no modifications to the code are required, you'll just need to set the global to i, o, s or any combination as well as point to a log file somewhere on your local disk.
Hope that helps,
-- Alex