Ошибка в Mule 4 внутри теста MUnit 2 при вызове потока SOAPKIT, в котором говорится, что поток не существует, даже если он есть - PullRequest
0 голосов
/ 27 мая 2020

У меня есть основной поток API под названием «api-main», который представляет собой поток SOAP -Kit, который имеет SOAP маршрутизатор, который распределяет сообщение по подпотокам, прослушиватель настроен с моим WSDL, и я можно отлично вызвать его с помощью HTTP-клиента, такого как SOAP -UI. Однако, когда я вызываю его с помощью тестов MUnit с той же полезной нагрузкой, что и в SOAP -UI, он выглядит так:

    WARNING: Interceptor for {http://xyz/QueryEngineService/QueryEngineV200606DotNet}QueryEngineV200606DotNet#{http://xyz/QueryEngineService/QueryEngineV200606DotNet}GetTemplateResultAsXML has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Despite the given WSDL file configurated in configuration 'soapkit-config' does contains the name 'GetTemplateResultAsXML', there is no current flow that maps to it (the expected flow should be called 'GetTemplateResultAsXML:\soapkit-config')
    at org.mule.soapkit.soap.server.SoapCxfInvoker.invoke(SoapCxfInvoker.java:84)
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:59)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor$2.run(ServiceInvokerInterceptor.java:126)
    at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
    at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:131)
    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
    at org.mule.soapkit.soap.server.SoapCxfServer.sendThroughCxf(SoapCxfServer.java:200)
    at org.mule.soapkit.soap.server.SoapCxfServer.serve(SoapCxfServer.java:104)
    at org.mule.module.soapkit.internal.SoapkitRouterExecutor.execute(SoapkitRouterExecutor.java:73)
    at org.mule.runtime.module.extension.internal.runtime.execution.InterceptableOperationExecutorWrapper.execute(InterceptableOperationExecutorWrapper.java:60)
    at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$null$3(DefaultExecutionMediator.java:149)
    at org.mule.runtime.core.api.util.ExceptionUtils.tryExpecting(ExceptionUtils.java:227)
    at org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader(ClassUtils.java:915)
    at org.mule.runtime.core.api.util.ClassUtils.withContextClassLoader(ClassUtils.java:879)
    at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$executeWithInterceptors$9(DefaultExecutionMediator.java:149)
    at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:57)
    at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61)
    at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
    at reactor.core.publisher.MonoMap.subscribe(MonoMap.java:55)
    at reactor.core.publisher.MonoSwitchIfEmpty.subscribe(MonoSwitchIfEmpty.java:44)
    at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
    at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3858)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:420)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:532)
    at reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:974)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121)
    at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2071)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:162)
    at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:964)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90)
    at reactor.core.publisher.MonoCurrentContext.subscribe(MonoCurrentContext.java:35)
    at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3858)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:420)
    at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$1.onNext(AbstractMessageProcessorChain.java:292)
    at org.mule.runtime.core.privileged.processor.chain.AbstractMessageProcessorChain$1.onNext(AbstractMessageProcessorChain.java:285)
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
    at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:345)
    at reactor.core.publisher.FluxSubscribeOnValue$ScheduledScalar.run(FluxSubscribeOnValue.java:178)
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:50)
    at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:27)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.mule.service.scheduler.internal.AbstractRunnableFutureDecorator.doRun(AbstractRunnableFutureDecorator.java:111)
    at org.mule.service.scheduler.internal.RunnableFutureDecorator.run(RunnableFutureDecorator.java:54)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: org.mule.module.soapkit.internal.exception.SoapkitRouterException: Despite the given WSDL file configurated in configuration 'soapkit-config' does contains the name 'GetTemplateResultAsXML', there is no current flow that maps to it (the expected flow should be called 'GetTemplateResultAsXML:\soapkit-config')
    at org.mule.module.soapkit.internal.DefaultSoapServerHandler.lambda$findFlow$0(DefaultSoapServerHandler.java:111)
    at java.util.Optional.orElseThrow(Optional.java:290)
    at org.mule.module.soapkit.internal.DefaultSoapServerHandler.findFlow(DefaultSoapServerHandler.java:111)
    at org.mule.module.soapkit.internal.DefaultSoapServerHandler.handle(DefaultSoapServerHandler.java:71)
    at org.mule.soapkit.soap.server.SoapCxfInvoker.invoke(SoapCxfInvoker.java:69)
    ... 50 more

Итак, это означает, что фактический подпоток, который существует, не существует. Кто-нибудь знает почему?

1 Ответ

0 голосов
/ 27 мая 2020

Я только что обнаружил, почему он не находил подпоток. В Anypoint Studio мне нужно было включить его в свойство «Включить источники потока» моего набора тестов. Я выбрал набор тестов (дважды щелкните по нему) и в свойствах вставил поток в список, как на изображении ниже: введите описание изображения здесь

Как видите, я добавил свой подпоток под названием «GetTemplateResultAs XML: \ soapkit-config» в свой сценарий модульного тестирования, и это сработало.

...