Logiskt fel dublett i EI Update ger rapporteras som tekniskt fel (soap:Fault)

Issue #359 new
Rikard Edgren created an issue

Testat i SIT och i QA-miljön 2017-02-24

  1. Skapa en Engagemangsindex Update som innehåller två identiska poster (exempel bifogat)
  2. Kör detta mot Engagemangsindex i SIT- eller QA-miljön

Resultat: Ett SOAP-fel returneras, dock med ett bra felmeddelande: "<faultstring>EI002: EngagementTransaction #1 and #2 have the same key. That is not allowed. See rule for Update-R1 in service contract</faultstring>"

Förväntat resultat: Ett svar med ResultCode=ERROR och ovanstående felmeddelande som comment. Detta är vad som anges i TKB 1.0.3_RC2 från 2016-09-20.

Nuvarande beteende kommer troligen göra att tjänstekonsumenten gör omsändningar snarare än korrigerar felet.

Respons:

HTTP/1.1 500 Internal Server Error Date: Fri, 24 Feb 2017 12:28:32 GMT Server: Mule Core/3.7.0 Content-Type: text/xml; charset=UTF-8 http.status: 500 x-skltp-prt: 14 Via: 1.1 qa.esb.ntjp.sjunet.org Connection: close Transfer-Encoding: chunked

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>EI002: EngagementTransaction #1 and #2 have the same key. That is not allowed. See rule for Update-R1 in service contract</faultstring></soap:Fault></soap:Body></soap:Envelope>

Anrop:

POST https://test.esb.ntjp.sjunet.org/vp/Update/1/rivtabp21 HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: text/xml;charset=UTF-8 SOAPAction: "urn:riv:itintegration:engagementindex:UpdateResponder:1:Update" Content-Length: 2122 Host: test.esb.ntjp.sjunet.org Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:riv:itintegration:registry:1" xmlns:urn1="urn:riv:itintegration:engagementindex:UpdateResponder:1" xmlns:urn2="urn:riv:itintegration:engagementindex:1"> <soapenv:Header> <urn:LogicalAddress>5565594230</urn:LogicalAddress> </soapenv:Header> <soapenv:Body> <urn1:Update> <urn1:engagementTransaction> <urn2:deleteFlag>false</urn2:deleteFlag> <urn2:engagement> <urn2:registeredResidentIdentification>194401786530</urn2:registeredResidentIdentification> <urn2:serviceDomain>riv:clinicalprocess:healthcond:description</urn2:serviceDomain> <urn2:categorization>voo</urn2:categorization> <urn2:logicalAddress>LOAD-MOCKS</urn2:logicalAddress> <urn2:businessObjectInstanceIdentifier>NA</urn2:businessObjectInstanceIdentifier> <urn2:clinicalProcessInterestId>NA</urn2:clinicalProcessInterestId> <urn2:sourceSystem>LOAD-MOCKS</urn2:sourceSystem> <urn2:dataController>SE-NMT123</urn2:dataController> </urn2:engagement> </urn1:engagementTransaction> <urn1:engagementTransaction> <urn2:deleteFlag>false</urn2:deleteFlag> <urn2:engagement> <urn2:registeredResidentIdentification>194401786530</urn2:registeredResidentIdentification> <urn2:serviceDomain>riv:clinicalprocess:healthcond:description</urn2:serviceDomain> <urn2:categorization>voo</urn2:categorization> <urn2:logicalAddress>LOAD-MOCKS</urn2:logicalAddress> <urn2:businessObjectInstanceIdentifier>NA</urn2:businessObjectInstanceIdentifier> <urn2:clinicalProcessInterestId>NA</urn2:clinicalProcessInterestId> <urn2:sourceSystem>LOAD-MOCKS</urn2:sourceSystem> <urn2:dataController>SE-NMT123</urn2:dataController> </urn2:engagement> </urn1:engagementTransaction> </urn1:Update> </soapenv:Body> </soapenv:Envelope>

från tjänsteplattformsloggen:

2017-02-23 09:33:53,863 WARN [[skltp-ei-application-mule-frontend-app].soitoolkit-http-connector.receiver.04] org.apache.cxf.phase.PhaseInterceptorChain - Interceptor for {urn:riv:itintegration:engagementindex:Update:1:rivtabp21}UpdateResponderService#{urn:riv:itintegration:engagementindex:Update:1:rivtabp21}Update has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: EI002: EngagementTransaction #1 and #3 have the same key. That is not allowed. See rule for Update-R1 in service contract at org.mule.module.cxf.MuleInvoker.invoke(MuleInvoker.java:122) ~[?:?] at org.mule.module.cxf.MuleJAXWSInvoker.invoke(MuleJAXWSInvoker.java:43) ~[?:?] at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75) ~[?:?] at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) ~[?:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_111] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_111] at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37) ~[?:?] at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107) ~[?:?] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ~[?:?] at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) ~[?:?] at org.mule.module.cxf.CxfInboundMessageProcessor.sendThroughCxf(CxfInboundMessageProcessor.java:413) ~[?:?] at org.mule.module.cxf.CxfInboundMessageProcessor.sendToDestination(CxfInboundMessageProcessor.java:287) ~[?:?] at org.mule.module.cxf.CxfInboundMessageProcessor.process(CxfInboundMessageProcessor.java:152) ~[?:?] at org.mule.module.cxf.config.FlowConfiguringMessageProcessor.process(FlowConfiguringMessageProcessor.java:49) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:85) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:80) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:98) ~[?:?] at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:102) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:98) ~[?:?] at org.mule.construct.DynamicPipelineMessageProcessor.process(DynamicPipelineMessageProcessor.java:55) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:85) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:80) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:98) ~[?:?] at org.mule.interceptor.AbstractEnvelopeInterceptor.processBlocking(AbstractEnvelopeInterceptor.java:58) ~[?:?] at org.mule.processor.AbstractRequestResponseMessageProcessor.process(AbstractRequestResponseMessageProcessor.java:47) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:98) ~[?:?] at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:41) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:94) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:98) ~[?:?] at org.mule.processor.AbstractRequestResponseMessageProcessor.processBlocking(AbstractRequestResponseMessageProcessor.java:56) ~[?:?] at org.mule.processor.AbstractRequestResponseMessageProcessor.process(AbstractRequestResponseMessageProcessor.java:47) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.executeNext(BlockingProcessorExecutor.java:85) ~[?:?] at org.mule.processor.BlockingProcessorExecutor.execute(BlockingProcessorExecutor.java:56) ~[?:?] at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:80) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:50) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.access$001(InterceptingChainLifecycleWrapper.java:22) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper$1.process(InterceptingChainLifecycleWrapper.java:66) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:61) ~[?:?] at org.mule.construct.AbstractPipeline$3.process(AbstractPipeline.java:231) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.chain.SimpleMessageProcessorChain.doProcess(SimpleMessageProcessorChain.java:43) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:50) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.access$001(InterceptingChainLifecycleWrapper.java:22) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper$1.process(InterceptingChainLifecycleWrapper.java:66) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:61) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.chain.SimpleMessageProcessorChain.doProcess(SimpleMessageProcessorChain.java:43) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.doProcess(InterceptingChainLifecycleWrapper.java:50) ~[?:?] at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:76) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.access$001(InterceptingChainLifecycleWrapper.java:22) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper$1.process(InterceptingChainLifecycleWrapper.java:66) ~[?:?] at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:24) ~[?:?] at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:107) ~[?:?] at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[?:?] at org.mule.processor.chain.InterceptingChainLifecycleWrapper.process(InterceptingChainLifecycleWrapper.java:61) ~[?:?] at org.mule.transport.AbstractMessageReceiver.routeEvent(AbstractMessageReceiver.java:511) ~[?:?] at org.mule.transport.AbstractTransportMessageProcessTemplate.routeEvent(AbstractTransportMessageProcessTemplate.java:72) ~[?:?] at org.mule.execution.FlowProcessingPhase$1$1.process(FlowProcessingPhase.java:76) ~[?:?] at org.mule.execution.FlowProcessingPhase$1$1.process(FlowProcessingPhase.java:63) ~[?:?] at org.mule.execution.ExecuteCallbackInterceptor.execute(ExecuteCallbackInterceptor.java:16) ~[?:?] at org.mule.execution.CommitTransactionInterceptor.execute(CommitTransactionInterceptor.java:35) ~[?:?] at org.mule.execution.CommitTransactionInterceptor.execute(CommitTransactionInterceptor.java:22) ~[?:?] at org.mule.execution.HandleExceptionInterceptor.execute(HandleExceptionInterceptor.java:30) ~[?:?] at org.mule.execution.HandleExceptionInterceptor.execute(HandleExceptionInterceptor.java:14) ~[?:?] at org.mule.execution.BeginAndResolveTransactionInterceptor.execute(BeginAndResolveTransactionInterceptor.java:67) ~[?:?] at org.mule.execution.ResolvePreviousTransactionInterceptor.execute(ResolvePreviousTransactionInterceptor.java:44) ~[?:?] at org.mule.execution.SuspendXaTransactionInterceptor.execute(SuspendXaTransactionInterceptor.java:50) ~[?:?] at org.mule.execution.ValidateTransactionalStateInterceptor.execute(ValidateTransactionalStateInterceptor.java:40) ~[?:?] at org.mule.execution.IsolateCurrentTransactionInterceptor.execute(IsolateCurrentTransactionInterceptor.java:41) ~[?:?] at org.mule.execution.ExternalTransactionInterceptor.execute(ExternalTransactionInterceptor.java:48) ~[?:?] at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:28) ~[?:?] at org.mule.execution.RethrowExceptionInterceptor.execute(RethrowExceptionInterceptor.java:13) ~[?:?] at org.mule.execution.TransactionalErrorHandlingExecutionTemplate.execute(TransactionalErrorHandlingExecutionTemplate.java:110) ~[?:?] at org.mule.execution.FlowProcessingPhase$1.run(FlowProcessingPhase.java:62) ~[?:?] at org.mule.transport.TrackingWorkManager$TrackeableWork.run(TrackingWorkManager.java:267) ~[?:?] at org.mule.work.WorkerContext.run(WorkerContext.java:286) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_111] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_111] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] Caused by: se.skltp.ei.svc.service.api.EiException: EI002: EngagementTransaction #1 and #3 have the same key. That is not allowed. See rule for Update-R1 in service contract at se.skltp.ei.svc.service.api.EiErrorCodeEnum.createException(EiErrorCodeEnum.java:69) ~[?:?] at se.skltp.ei.svc.service.impl.ProcessBean.validateEngagementTransactions(ProcessBean.java:146) ~[?:?] at se.skltp.ei.svc.service.impl.ProcessBean.validateUpdate(ProcessBean.java:123) ~[?:?] at se.skltp.ei.intsvc.update.UpdateWSBean.update(UpdateWSBean.java:46) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_111]

Comments (0)

  1. Log in to comment