Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

  1. Med integrerad statustjänst:
    VP Camel exponerar en statustjänst vars port kan konfigureras i application-custom.properties.
    Man kan anropa den med t.ex. Curl:

    Kodblock
    curl --data "username=uname&password=pw" http://<serveradress>:8080/status

    och få ett svar:

    Kodblock
    {
      "Name": "vp-services-camel",
      "Version": "1.0.0-RC1",
      "BuildTime": "2019-09-11T09:15:30.887Z",
      "ServiceStatus": "Started",
      "Uptime": "20 minutes",
      "ManagementName": "vp-services",
      "JavaVersion": "1.8.0_161",
      "CamelVersion": "2.24.0",
      "TakCacheInitialized": "true",
      "TakCacheResetInfo": "Date:2019-09-12T15:41 Status:REFRESH_OK vagval:566 behorigheter:1034",
      "HsaCacheInitialized": "true",
      "HsaCacheResetInfo": "Date:2019-09-12T15:41 Status:true oldNum:0 newNum:31465",
      "JvmTotalMemory": "885 mB",
      "JvmFreeMemory": "817 mB",
      "JvmUsedMemory": "67 mB",
      "JvmMaxMemory": "1365 mB",
      "Endpoints": [
        "https://0.0.0.0:20000/vp",
        "http://0.0.0.0:8080/vp",
        "http://0.0.0.0:8080/status",
        "http://0.0.0.0:24000/resethsacache",
        "http://0.0.0.0:23000/resetcache"
      ]
    }


  2. Med SoapUI:
    a. Installera först SoapUI ( https://www.soapui.org/downloads/soapui/source-forge.html )
    b. Skapa ett SoapUI-projekt som kör request’s mot VP Camel. Tutorials finns på denna adress:
    https://www.soapui.org/learn/tutorials/web-service-example-projects.html
    c. För att kunna köra webtjänsten så måste man installera ett SITHS certifikat. Finns inget kan det beställas från SITHS förvaltningen. I SoapUI väljer du sedan File > Preferences och sedan fliken SSL Settings. Som KeyStore väljer du det SITHS certifikat du har beställt och anger lösenordet som du fått i samband med beställningen. Notera att det är certifikatet för autentisering som skall användas, inte signering.
    e. Se till att adress till applikationen är korrekt, annars editera.
    f. Exekvera anrop genom att först dubbelklicka på önskat test och sedan klicka på den gröna pilen.
    g. Ett resultat kommer nu att dyka upp i fönstret till höger , märkt Response i i SoapUI (th på bilden nedan). Se exempelsvar exempel-svar nedan och dess betydelse.

...

Image Added

...

1: VP004, ingen logisk adress (verksamhet/system) upplagd som matchar angiven logisk adress i anropet. Orsak, en logisk adress (Test) saknas i Tjänstekatalogen. Åtgärd, registrera logisk adress i Tjänstekatalogen.

...

OK, ett exempel på svar vid ett lyckat anrop. I detta fall hade patienten inga engagemang (se bilden ovan hur det ser ut i SoapUI).

Kodblock
<soapenv:Envelope xmlns:soapsoapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body> xmlns:urn="urn:riv:interoperability:headers:1" xmlns:urn1="urn:riv:itintegration:registry:1">
      <soap:Fault><soapenv:Header>
         <faultcode>soap:Server</faultcode><ProcessingStatus xmlns="urn:riv:interoperability:headers:1"/>
   </soapenv:Header>
   <soapenv:Body>
 <faultstring>VP004 No Logical Adress found for<ns3:GetLaboratoryOrderOutcomeResponse serviceNamespacexmlns:ns3="urn:riv:itinfraclinicalprocess:tphealthcond:Pingactoutcome:1GetLaboratoryOrderOutcomeResponder:rivtabp20, receiverId:Test (se.skl.tp.vp.exceptions.VpSemanticException). Message payload is of type: ReversibleXMLStreamReader</faultstring>3" xmlns="urn:riv:clinicalprocess:healthcond:actoutcome:3" xmlns:ns2="urn:riv:clinicalprocess:healthcond:actoutcome:3.1" xmlns:ns4="urn:riv:interoperability:headers:1">
         </soap:Fault><ns3:result>
            </soap:Body>
</soap:Envelope>

...

<resultCode>INFO</resultCode>
            <logId>NA</logId>
         </ns3:result>
      </ns3:GetLaboratoryOrderOutcomeResponse>
   </soapenv:Body>
</soapenv:Envelope>

2: VP004, ingen logisk adress (verksamhet/system) . Orsak, behörighet upplagd som matchar angiven logisk adress i anropet. Orsak, en logisk adress (Test) saknas i Tjänstekatalogen. Åtgärd, registrera behörighet för konsumenten logisk adress i Tjänstekatalogen.

Kodblock
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>VP004 <faultstring>VP007No Logical AuthorizationAdress missingfound for serviceNamespace: urn:riv:itinfra:tp:Ping:1:rivtabp20, receiverId: Test, senderId: HSAID-XYZ (se.skl.tp.vp.exceptions.VpSemanticException). Message payload is of type: ReversibleXMLStreamReader</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

3: OK, ett lyckat anrop där konsumenten har behörighet att anropa logisk adress för tjänsten PingVP007, ingen behörighet finns för konsumenten (HSA ID från certifikatet) att anropa angiven logisk adress (verksamhet/system). Orsak, behörighet saknas i Tjänstekatalogen. Åtgärd, registrera behörighet för konsumenten i Tjänstekatalogen.

Kodblock
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header>Body>
      <mule<soap:header xmlns:mule="http://www.muleumo.org/providers/soap/1.0">Fault>
          <mule:MULE_CORRELATION_ID>ca082f56-13b1-11e3-941a-8114c8049c15</mule:MULE_CORRELATION_ID><faultcode>soap:Server</faultcode>
         <mule:MULE_CORRELATION_GROUP_SIZE>1</mule:MULE_CORRELATION_GROUP_SIZE>
         <mule:MULE_CORRELATION_SEQUENCE>-1</mule:MULE_CORRELATION_SEQUENCE>
      </mule:header>
   </soap:Header>
   <soap:Body>
      <pingResponse xmlns="urn:riv:itinfra:tp:PingResponder:1" xmlns:ns2="http://www.w3.org/2005/08/addressing">
         <pingUt>Ping response from:Ping test</pingUt>
      </pingResponse>
   </soap:Body>
</soap:Envelope>

Verifiera att följande loggar dyker upp i <mule_home>/logs/mule-app-vp.log

Kodblock
** logEvent-debug.start ***********************************************************
IntegrationScenarioId=
ContractId=
LogMessage=xreq-in
ServiceImpl=vagval-dynamic-routing-flow
Host=tp-test01 (192.168.19.10)
ComponentId=vp-services-2.2.4
Endpoint=https://localhost:20000/vp/Ping/1/rivtabp20
MessageId=12a01c5a-5908-11e3-906c-2d7f5d7f27be
BusinessCorrelationId=12a06a86-5908-11e3-906c-2d7f5d7f27be
BusinessContextId=
ExtraInfo=
-senderid=HSASERVICES-100M
-source=se.skl.tp.vp.util.LogTransformer
-cxf_service=urn:riv:itinfra:tp:Ping:1:rivtabp20
-rivversion=RIVTABP20
-receiverid=Ping
Payload=<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://www.w3.org/2005/08/addressing" xmlns:urn="urn:riv:itinfra:tp:PingResponder:1">
   <soapenv:Header>
      <add:To>Ping</add:To>
   </soapenv:Header>
   <soapenv:Body>
      <urn:ping>
         <urn:pingIn/>
      </urn:ping>
   </soapenv:Body>
</soapenv:Envelope>
** logEvent-debug.end *************************************************************
2013-11-29 16:08:15,865 DEBUG org.mule.module.logging.DispatchingLogger - MULE_ENCODING = UTF-8 (java.lang.String)
2013-11-29 16:08:15,866 DEBUG org.mule.module.logging.DispatchingLogger - http.method = POST (java.lang.String)
2013-11-29 16:08:15,867 DEBUG org.mule.module.logging.DispatchingLogger - MULE_CORRELATION_ID = 12a01c5a-5908-11e3-906c-2d7f5d7f27be (java.lang.String)
2013-11-29 16:08:15,868 DEBUG org.mule.module.logging.DispatchingLogger - x-skltp-prt = 9 (java.lang.String)
2013-11-29 16:08:15,869 DEBUG org.mule.module.logging.DispatchingLogger - Content-Type = text/plain;charset=UTF-8 (java.lang.String)
2013-11-29 16:08:15,870 DEBUG org.mule.module.logging.DispatchingLogger - MULE_CORRELATION_GROUP_SIZE = 1 (java.lang.String)
2013-11-29 16:08:15,871 DEBUG org.mule.module.logging.DispatchingLogger - SOAPAction = "" (java.lang.String)
2013-11-29 16:08:15,888 DEBUG org.mule.module.logging.DispatchingLogger - soi-toolkit.log
** logEvent-debug.start ***********************************************************
IntegrationScenarioId=
ContractId=
LogMessage=xresp-out
ServiceImpl=vagval-dynamic-routing-flow
Host=tp-test01 (localhost)
ComponentId=vp-services-2.2.4
Endpoint=https://localhost:20000/vp/Ping/1/rivtabp20
MessageId=12a4b04f-5908-11e3-906c-2d7f5d7f27be
BusinessCorrelationId=12a06a86-5908-11e3-906c-2d7f5d7f27be
BusinessContextId=
ExtraInfo=
-senderid=HSASERVICES-100M<faultstring>VP007 Authorization missing for serviceNamespace: urn:riv:itinfra:tp:Ping:1:rivtabp20, receiverId: Test, senderId: HSAID-XYZ (se.skl.tp.vp.exceptions.VpSemanticException). Message payload is of type: ReversibleXMLStreamReader</faultstring>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Nedan är ett exempel på hur loggen registrerar en request, liknande den ovan. Loggen hittas i /var/log/camel eller där ni konfigurerat att loggarna skaa sparas.

Kodblock
** logEvent-debug.start ***********************************************************
LogMessage=req-out
ServiceImpl=vp-http-route
Host=server-namn (xx.xx.xx.xx ip-address)
ComponentId=vp-services
Endpoint=http://0.0.0.0:8080/vp/clinicalprocess/healthcond/actoutcome/GetLaboratoryOrderOutcomeResponse/3/rivtabp21
MessageId=aMessageId
BusinessCorrelationId=b7929d30-d104-4679-be50-e8f3ce49af39
ExtraInfo=
-servicecontract_namespace=urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2
-Headers={SOAPAction="urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2:GetLaboratoryOrderOutcomeResponse", x-rivta-original-serviceconsumer-hsaid=aTestHsaId, x-skltp-correlation-id=aTestCorrelationId, x-vp-instance-id=testVpInstanceId, x-vp-sender-id=aTestSenderId}
-routerVagvalTrace=5339574230
-time.elapsed=1
-originalServiceconsumerHsaid=testHsaId
-source=se.skl.tp.vp.util.LogTransformer
-cxf_service=urn:riv:itinfra:tp:Ping:1:rivtabp20
-rivversion=RIVTABP20
-time.producer=9logging.MessageInfoLogger
-routerBehorighetTrace=8877665544
-senderIpAdress=xx.xx.xx.xx
-senderid=testSenderId
-receiverid=testReceiverId
-endpoint_url=http://localhosttestServer:20001port/GetLaboratoryOrderOutcomeResponse/teststubservice/Ping_Service/1
-receiverid=Ping
Payload=<soapservice/v2
-wsdl_namespace=urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2:rivtabp21
-rivversion=rivtabp21
Payload=<soapenv:Envelope xmlns:soapsoapenv="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><mule:header" xmlns:urn="urn:riv:itintegration:registry:1" xmlns:urn1="urn:riv:clinicalprocess:healthcond:actoutcome:GetLaboratoryOrderOutcomeResponse:2" xmlns:muleurn2="http://www.muleumo.org/providers/soap/1.0"><mule:MULE_CORRELATION_ID>12a01c5a-5908-11e3-906c-2d7f5d7f27be</mule:MULE_CORRELATION_ID><mule:MULE_CORRELATION_GROUP_SIZE>1</mule:MULE_CORRELATION_GROUP_SIZE><mule:MULE_CORRELATION_SEQUENCE>-1</mule:MULE_CORRELATION_SEQUENCE></mule:header></soap:Header><soap:Body><pingResponse xmlns="urn:riv:itinfra:tp:PingResponder:1" xmlns:ns2="http://www.w3.org/2005/08/addressing"><pingUt>Ping response from: </pingUt></pingResponse></soap:Body></soapurn:riv:clinicalprocess:healthcond:actoutcome:2">
   <soapenv:Header>
      <urn:LogicalAddress>testLogicalAddress</urn:LogicalAddress>
   </soapenv:Header>
   <soapenv:Body>
      <urn1:GetLaboratoryOrderOutcomeResponse>
         <urn1:patientId>
            <urn2:id>testPatientId</urn2:id>
            <urn2:type>1.2.752.744.2.1.3.1</urn2:type>
         </urn1:patientId>
      </urn1:GetLaboratoryOrderOutcomeResponse>
   </soapenv:Body>
</soapenv:Envelope>
** logEvent-debug.end *************************************************************

...