Index: vhLib/WebServiceLogger/Logger.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/Logger.cls.xml (revision 0) +++ vhLib/WebServiceLogger/Logger.cls.xml (revision 321) @@ -0,0 +1,59 @@ + + + + +1 +%RegisteredObject + + +1 +vhLib.WebServiceLogger.Logger + + + + +1 +WebserviceLogger:vhLib.WebServiceLogger.Logger + + + + +1 +Stream:%Stream,Direction:%String,ClassName:%String + + + + +1 +ClassName:%String,Webmethod:%String="" +%Boolean + + + + +1 +%String + + + + +ClassName:%String +1 +vhLib.WebServiceLogger.enu.LogNiveau + + + + + + Index: vhLib/WebServiceLogger/WebserviceLogSetting.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/WebserviceLogSetting.cls.xml (revision 0) +++ vhLib/WebServiceLogger/WebserviceLogSetting.cls.xml (revision 321) @@ -0,0 +1,52 @@ + + + +persistent +TECH.Persistent + + +%String + + + +vhLib.WebServiceLogger.enu.LogNiveau + + + +1 +WebserviceClassName +1 + + + +ClassName:%String +1 +1 +%Status +1 + + + + +%Library.CacheStorage +^WS.Webserv835B.WebserviceL20C8D +WebserviceLogSettingDefaultData +^WS.Webserv835B.WebserviceL20C8D +^WS.Webserv835B.WebserviceL20C8I +^WS.Webserv835B.WebserviceL20C8S + + +%%CLASSNAME + + +LogNiveau + + + + + + + Index: vhLib/WebService.cls.xml =================================================================== diff -u --- vhLib/WebService.cls.xml (revision 0) +++ vhLib/WebService.cls.xml (revision 321) @@ -0,0 +1,190 @@ + + + + +Uitgebreide ErrorInfo bij SOAP fault + +vhLib.Macro,WS.WebService,TECH.Error +1 +%SOAP.WebService + + + +SERVICENAME - Should be the name of the service for which this is a proxy. +Override this parameter in the subclass. +dummy + + + +1 + + + + +Namespaces van de gerefereerde klassen zullen gebruikt worden in de WSDL. +1 + + + + +The OnInternalFault method may be overridden by the user to change the default SOAP + fault returned by Cache for internal errors. +OnInternalFault is passed the fault which may be modified to suit the applications needs. +After OnInternalFault returns this fault will be sent to the SOAP client. +The %Status that represents the error is also passed. +[Previously private] +1 +fault:%SOAP.Fault,status:%Status +1 +"_$$$CRLF + Set detail=detail_" "_$$$CRLF + Set detail=detail_" "_$$$cvtHTML(%ErrorObject.ErrorCode)_""_$$$CRLF + Set:($L(%ErrorObject.UserText)) detail=detail_" "_$$$cvtHTML(%ErrorObject.UserText)_""_$$$CRLF + Set detail=detail_" "_$$$cvtHTML(%ErrorObject.ErrorCode2)_""_$$$CRLF + Set:%ErrorObject.Data'="" detail = detail_" "_%ErrorObject.Data_""_$$$CRLF + Set detail=detail_" "_$$$cvtHTML(%ErrorObject.RemoteIP)_""_$$$CRLF + Set detail=detail_" "_$$$cvtHTML("device: "_%ErrorObject.Device_" job: "_%ErrorObject.Job)_""_$$$CRLF + Set detail=detail_" "_$$$CRLF + + Set fault.detail=detail + } +]]> + + + + + +The return value is 1 (true) if the body was processed and a response +stream produced. If 0 is returned the %SOAP.MsgDescriptor class will be +invoked as usual. If an error occurs during the processing of the request, +then a fault should be returned in the usual way using the ReturnFault method.
+ +The arguments to this method are:
+ action is the SOAPAction for the SOAP request.
+ requestBody is the body of the SOAP request.
+ responseBody is a character stream to which the body of the SOAP response will be written.
+
]]>
+ +%Boolean +1 + +
+ + + +1 +body:%SOAP.Descriptor,tag:%String,isService:%Boolean,mimeAttachments:%Net.MIMEPart,bodyStream:%CharacterStream +%Status +1 +0)) { + Set sc=..WriteSOAPHeaders(bodyUse,namespaces) + If $$$ISERR(sc) Quit sc + } + + If 'isService || 'oneWay { // If one-way service response with headers, then no body. + Write " <"_..#SOAPPREFIX_":Body" + Set securityHeader=r%SecurityOut + If ..BodyId'="" { + Write " wsu:Id="""_..BodyId_"""" + Set ..BodyId="" + } + If (bodyUse="encoded") && (..SoapVersion="1.1") { + Write " "_..#SOAPPREFIX_":encodingStyle='"_$$$SOAPENCns_"'" + } + Write ">" + Set encryptedBody=($isobject(r%SecurityOut) && r%SecurityOut.IsEncrypted) + If encryptedBody { + Set r%SecurityOut.WSBodyPosition=r%SecurityOut.WSStream.Size + } + + If ..WriteSOAPBodyMethod'="" { + Set sc=$method($this,..WriteSOAPBodyMethod,body,tag) + } Else { + If $data(bodyStream) { + If $isobject(bodyStream) { + Set sc=bodyStream.OutputToDevice() + } Else { + Write bodyStream + } + } Else { + Set format=bodyUse + If bare { + Set format=format_",group" + } Else { + If (bodyUse="encoded") && (..SoapVersion'="1.1") { + Set attrs($increment(attrs))=..#SOAPPREFIX_":encodingStyle" + Set attrs(attrs,0)=$$$SOAP12ENCns + Set format="encoded12" + } + If forceTNS Set tag="tns:"_tag + } + Set sc=body.XMLExport(tag,format,namespaces,.attrs,,,,,,,mimeAttachments) + } + } + If $$$ISERR(sc) Quit sc + + If encryptedBody { + Set r%SecurityOut.WSBodyLength=r%SecurityOut.WSStream.Size-r%SecurityOut.WSBodyPosition + } + Write "",! + } Else { + Write " <"_..#SOAPPREFIX_":Body>",! + } + + Do ..EndSOAPEnvelope() + + Do IO.Reset() + Set Stream = IO.GeefStream() + while 'Stream.AtEnd { + write Stream.Read() + } + + Set ClassName = ..%ClassName(1) + Do ##class(vhLib.WebServiceLogger.LogService).LogStream(Stream,"OUT",ClassName) + + Quit $$$OK +]]> + +
+ + +
Index: vhLib/WebServiceLogger/enu/LogNiveau.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/enu/LogNiveau.cls.xml (revision 0) +++ vhLib/WebServiceLogger/enu/LogNiveau.cls.xml (revision 321) @@ -0,0 +1,32 @@ + + + +datatype +1 +%String + + +;I;D + + + +;Info;Debug + + + +1 +vhLib.WebServiceLogger.enu.LogNiveau + + + + +1 +vhLib.WebServiceLogger.enu.LogNiveau + + + + + + Index: vhLib/WebServiceLogger/impl/VhLibLogger.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/impl/VhLibLogger.cls.xml (revision 0) +++ vhLib/WebServiceLogger/impl/VhLibLogger.cls.xml (revision 321) @@ -0,0 +1,42 @@ + + + + +1 +vhLib.WebServiceLogger.Logger + + +Stream:%Stream,Direction:%String,ClassName:%String + + + + +Stream:%Stream +1 +%String + + + + + + Index: vhLib/WebServiceLogger/LogService.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/LogService.cls.xml (revision 0) +++ vhLib/WebServiceLogger/LogService.cls.xml (revision 321) @@ -0,0 +1,69 @@ + + + +%RegisteredObject + + +1 +Stream:%Stream,Direction:%String,ClassName:%String + + + + +1 +Logger:vhLib.WebServiceLogger.Logger + + + + +1 +ClassName:%String,LogNiveau:vhLib.WebServiceLogger.enu.LogNiveau + + + + +1 +ClassName:%String + + + + +1 +ClassName:%String,Webmethod:%String="" +%Boolean + + + + + + Index: vhLib/WebService/ServerFault.cls.xml =================================================================== diff -u --- vhLib/WebService/ServerFault.cls.xml (revision 0) +++ vhLib/WebService/ServerFault.cls.xml (revision 321) @@ -0,0 +1,24 @@ + + + + +1 +%SOAP.Fault + + +faultstr:%String,service:%String,detail:%String +1 +1 +%Status + + + + + + Index: vhLib/WebServiceLogger/impl/BestandLogger.cls.xml =================================================================== diff -u --- vhLib/WebServiceLogger/impl/BestandLogger.cls.xml (revision 0) +++ vhLib/WebServiceLogger/impl/BestandLogger.cls.xml (revision 321) @@ -0,0 +1,34 @@ + + + + +1 +vhLib.WebServiceLogger.Logger + + +Stream:%Stream,Direction:%String,ClassName:%String + + + + + +