WebServiceHelper.cls.xml

Checkout Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
[ICT-2730][rvPVR] ICT - WebService logging toevoegen voor "Badly formed SOAP Message"

- LogSoapInternalFault in code afgezonderd (private method)

- Zet logNiveau op Warning i.p.v. Error wanneer het type Fault een InvalidUserInput exception is. Andere condities kunnen later toegevoegd worden.

- Try-Catch errond geplaatst, om te vermijden dat de code om te loggen zelf een exception zou smijten

- De oorspronkelijke exception wordt nu ook mee gelogd (voor zover de info nog niet in de fault.detail te lezen is)

[ICT-2730][rvPVR] ICT - WebService logging toevoegen voor "Badly formed SOAP Message"
[ICT-2730][rvPVR] ICT - WebService logging toevoegen voor "Badly formed SOAP Message"
[ICT-2730][rvPVR] ICT - WebService logging toevoegen voor "Badly formed SOAP Message"

- Bij method OnInternalFault() logging toegevoegd + private method GeefSoapFaultInfo()

Ok top, bedankt!!

Ok top, bedankt!!

inderdaad. T eerste deel was het belangrijkste om te begrijpen : code afzonderen (in dit geval via composition) om enerzijds de basisklasse WS.WebService niet telkens te belasten, en anderzijds om ...

inderdaad. T eerste deel was het belangrijkste om te begrijpen : code afzonderen (in dit geval via composition) om enerzijds de basisklasse WS.WebService niet telkens te belasten, en anderzijds om de complexere logica om te loggen los te trekken van de klasse zelf.

Dat je de rest niet meteen kan volgen, is geen probleem hoor. Is te begrijpen, want is idd complexere logica.
Om je toch een beetje wegwijs te maken:
de complexiteit was/is : hoe geraak ik aan de opgeroepen WebMethod naam? Want deze willen we loggen. Er zijn verschillende gebruikers die een WebService van Caché oproepen : SoapUI, Vhisie4, AX, Fop DocBase, een andere Caché-server, ...
Onlangs is er een nieuwe gebruiker om aan dit lijstje toe te voegen : de eCon-configurator. Deze gebruikt (nog) een andere manier om WS request naar Caché te sturen. Deze request heb ik geanalyseerd, en op basis daarvan, vond ik in de structuur dat de webmethod vervat zat in de property MsgClass. En in de meeste gevallen lijkt dit zelfs de beste manier om de juiste webMethod naam te bepalen.
Tot zover de uitleg voor vandaag

Ja, oude gewoonte om $G() te schrijven. Kzal het aanpassen. Reden : in dit geval hou ik rekening met andere scenario's waarbij de nieuwe parameter nog niet wordt doorgegeven. Begrijp dus als : om ...

Ja, oude gewoonte om $G() te schrijven. Kzal het aanpassen.

Reden :
in dit geval hou ik rekening met andere scenario's waarbij de nieuwe parameter nog niet wordt doorgegeven. Begrijp dus als : om backward-compatible te
zijn. Anders zou het hier een <UNDEFINED> crash geven.

N.B. het is een public method, dus kan van eender welke plaats opgeroepen worden. Ik hou er dus rekening mee dat ik 1 of meerdere gebruikers kan gemist hebben.

Volgens mij is hier alles juist voor zover ik mee ben. Ik snap wel het principe van het afzonderen naar de WebServiceHelper door het object via $this mee te geven zodat er minder grote compileerti...

Volgens mij is hier alles juist voor zover ik mee ben.

Ik snap wel het principe van het afzonderen naar de WebServiceHelper door het object via $this mee te geven zodat er minder grote compileertijden zullen zijn bij het aanpassen van iets in te toekomst. Over de algemene werking zelf snap ik wel niet perfect wat er juist allemaal gebeurt (bv. waar de 'MsgClass' van de webservice zelf voor staat (Die wordt opgeroepen in 'vhLib.WebServiceLogger.Logger^GeefWebMethodFromService'))

Hier hetzelfde, $G -> $Get?

Hier hetzelfde, $G -> $Get?

Moet volgens de coding conventions hier niet '$Get' geschreven worden in plaat van $G? Snap ook niet zo goed waarom hier een $Get gebruikt wordt?

Moet volgens de coding conventions hier niet '$Get' geschreven worden in plaat van $G?

Snap ook niet zo goed waarom hier een $Get gebruikt wordt?

[ICT-1756] WebServiceLogger geeft "Unknown webmethod"
[ICT-1756] WebServiceLogger geeft "Unknown webmethod"
[ICT-1756] WebServiceLogger geeft "Unknown webmethod"

- Webservice-object doorgeven aan LogStream method

- nieuwe method GeefWebMethodFromService() met fallback naar de oude methode (zou normaal gezien niet meer nodig zijn, maar ja, ge weet maar nooit hé)

- impl.VhLibLogger en BestandLogger aangepast, roepen nieuwe methode op.

Aparte commit (later) : klasse vhLib.WebService , want compilatie van deze klasse zal alle andere WS-klassen mee compileren.

  1. … 4 more files in changeset.
[ICT] - WebService base class

- OnInternalFault verplaatst naar de helper klasse ( om lange compiles te vermijden )

- Foutmelding die getrowed wordt zal nu de webmethod bevatten ipv een hardcoded value

  1. … 1 more file in changeset.
WebServiceLogger

- De webservice calls timing loggen.

- Rapport van de traagste webservice calls opvragen.

  1. … 5 more files in changeset.
Merged revision(s) 842-844 from deploy2010/vhLib:

[EPIC1]

........

[WS.WebServiceHelper]

........

  1. … 1 more file in changeset.
[EPIC1]

- WebService.cls.xml : PersonalityID

  1. … 1 more file in changeset.
[vhLib.WebService]

- OnBeforeWriteSOAPMessage

- OnAfterWriteSOAPMessage

- opkuis van TECH.IO

    • -0
    • +33
    ./WebServiceHelper.cls.xml
  1. … 1 more file in changeset.