Ошибка NameResolvingRequestBuilder $ RotateIpListFactory при вызове внешнего URL-адреса отдыха из потока мулов - PullRequest
0 голосов
/ 23 сентября 2019

Я написал ниже поток мулов, который вызывает другой внешний URL-адрес отдыха "http://localhost:7070/rest/products" через ссылку на поток. Внешний URL-адрес возвращает список продуктов, и его сервер запущен и работает.

Но когда явызовите URL через поток мулов, я получаю следующее исключение:

java.lang.ClassNotFoundException: com.mulesoft.service.http.impl.service.client.builder.NameResolvingRequestBuilder $ RotateIpListFactory. Я предоставил полный текстЖурнал ошибок в конце. Пожалуйста, помогите.

<http:request-config name="HTTP_Request_configuration" doc:name="HTTP Request configuration" doc:id="0b9778e7-201b-4cbf-9c2b-551f47044bd4" basePath="/rest" >
    <http:request-connection host="localhost" port="7070" />
</http:request-config>
<http:listener-config name="HTTP_Listener_config" doc:name="HTTP Listener config" doc:id="c29e17c2-66e2-4685-bdd6-ee80245f63a8" >
    <http:listener-connection host="0.0.0.0" port="8081" />
</http:listener-config>
<flow name="mainflow" doc:id="4b8f4f18-f462-4bc3-bc20-ddee90d86dbd" >
    <http:listener doc:name="Listener" doc:id="5458e296-cc0d-4d58-921a-c35483cfb838" config-ref="HTTP_Listener_config" path="/products"/>
    <flow-ref doc:name="Flow Reference" doc:id="4e2a1241-5ffe-4167-adec-a7e2412d0a59" name="config-resr-callFlow"/>
</flow>
<flow name="config-resr-callFlow" doc:id="e004e7f3-f231-4c55-b95c-72dd6fd2c05e" >
    <http:request method="GET" doc:name="Request" doc:id="78e7368c-316a-4cbc-9f34-3cb9de0f4dcc" config-ref="HTTP_Request_configuration" path="/products"/>
</flow>

Журнал ошибок:

ERROR 2019-09-23 06:54:34,399 [[MuleRuntime].cpuLight.16: [rest-consumer].config-resr-callFlow.CPU_LITE @e96cb7f] [event: cfedad70-ddb5-11e9-b57d-3c9180706ae0] org.mule.runtime.core.internal.exception.OnCriticalErrorHandler: 
********************************************************************************
Message               : com/mulesoft/service/http/impl/service/client/builder/NameResolvingRequestBuilder$RotateIpListFactory.
Element               : config-resr-callFlow/processors/0 @ rest-consumer:config-resr-call.xml:18 (Request)
Element XML           : <http:request method="GET" doc:name="Request" doc:id="78e7368c-316a-4cbc-9f34-3cb9de0f4dcc" config-ref="HTTP_Request_configuration" path="/products"></http:request>
Error type            : MULE:CRITICAL
Payload Type          : org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamProvider
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.ClassNotFoundException: com.mulesoft.service.http.impl.service.client.builder.NameResolvingRequestBuilder$RotateIpListFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at org.mule.runtime.module.artifact.api.classloader.FineGrainedControlClassLoader.findLocalClass(FineGrainedControlClassLoader.java:171)
    at org.mule.runtime.module.artifact.api.classloader.FineGrainedControlClassLoader.loadClass(FineGrainedControlClassLoader.java:88)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.mulesoft.service.http.impl.service.client.builder.NameResolvingRequestBuilder.nextResolvedAddresses(NameResolvingRequestBuilder.java:99)
    at com.mulesoft.service.http.impl.service.client.builder.NameResolvingRequestBuilder.setUri(NameResolvingRequestBuilder.java:78)
    at com.mulesoft.service.http.impl.service.client.builder.NameResolvingRequestBuilder.setUri(NameResolvingRequestBuilder.java:32)
    at org.mule.service.http.impl.service.client.GrizzlyHttpClient.createGrizzlyRequest(GrizzlyHttpClient.java:418)
    at org.mule.service.http.impl.service.client.GrizzlyHttpClient.sendAsync(GrizzlyHttpClient.java:352)
    at com.mulesoft.service.http.impl.service.client.EEGrizzlyHttpClient.sendAsync(EEGrizzlyHttpClient.java:140)
    at org.mule.runtime.http.api.client.HttpClient.sendAsync(HttpClient.java:106)
    at org.mule.extension.http.internal.request.HttpRequesterConnectionManager$ShareableHttpClient.sendAsync(HttpRequesterConnectionManager.java:104)
    at org.mule.extension.http.internal.request.client.HttpExtensionClient.send(HttpExtensionClient.java:72)
    at org.mule.extension.http.internal.request.HttpRequester.doRequestWithRetry(HttpRequester.java:124)
    at org.mule.extension.http.internal.request.HttpRequester.doRequest(HttpRequester.java:103)
    at org.mule.extension.http.internal.request.HttpRequestOperations.request(HttpRequestOperations.java:131)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)
    at org.mule.runtime.module.extension.internal.runtime.execution.ReflectiveMethodComponentExecutor.lambda$execute$1(ReflectiveMethodComponentExecutor.java:80)
    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.execution.ReflectiveMethodComponentExecutor.execute(ReflectiveMethodComponentExecutor.java:79)
    at org.mule.runtime.module.extension.internal.runtime.operation.ReflectiveMethodOperationExecutor.execute(ReflectiveMethodOperationExecutor.java:64)
    at org.mule.runtime.module.extension.internal.runtime.execution.ReactiveOperationExecutionWrapper.lambda$execute$0(ReactiveOperationExecutionWrapper.java:65)
    at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:53)
    at reactor.core.publisher.MonoMap.subscribe(MonoMap.java:52)
    at reactor.core.publisher.MonoPeekTerminal.subscribe(MonoPeekTerminal.java:61)
    at reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3694)
    at reactor.core.publisher.Mono.subscribeWith(Mono.java:3800)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3688)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3655)
    at reactor.core.publisher.Mono.subscribe(Mono.java:3627)
    at org.mule.runtime.module.extension.internal.runtime.operation.DefaultExecutionMediator.lambda$executeWithInterceptors$9(DefaultExecutionMediator.java:159)
    at reactor.core.publisher.MonoCreate.subscribe(MonoCreate.java:53)
    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:3694)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)
    at reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:121)
    at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)
    at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:162)
    at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:933)
    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:3694)
    at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)
    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.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
    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.FluxHide$SuppressFuseableSubscriber.onNext(FluxHide.java:127)
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
    at reactor.core.publisher.FluxPeekFuseable$PeekFuseableSubscriber.onNext(FluxPeekFuseable.java:204)
    at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)
    at reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)
    at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
    at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
    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)

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Похоже, проблема в том, что существует смешивание функций предприятия и сообщества.Трассировка стека показывает, что Mule вызывает класс EEGrizzlyHttpClient, который доступен в редакции Enterprise.В версии сообщества вместо этого будет класс GrizzlyHttpClient.Может быть, некоторые услуги смешиваются при установке.Если вы загляните в каталог MULE_HOME / services и увидите каталог mule-service-http-ee-1.4.3, то это установка HTTP-сервиса на предприятии (обратите внимание на часть 'ee').Ошибка указывает, что Мул пытается использовать, но вместо этого - версия сообщества.Я рекомендую установить свежий дистрибутив Mule, чтобы убедиться, что он чистый.

Также рекомендуется использовать в ваших приложениях последнюю версию коннектора HTTP.Ознакомьтесь с последней версией страницы примечаний к выпуску и обновите версию в файле pom.xml проекта.

0 голосов
/ 23 сентября 2019

Мне не удалось понять ваш мотив, но это то, что я сделал.

Я создал мул-проект под названием products, определил конфигурацию HTTP для запуска на порту 7070, который будет возвращать фиктивную полезную нагрузку.

Я создал еще один проект под названием productsconsumer, который работает на порту 8081 с двумя потоками.Первый поток вызывает подпоток, используя ссылку на поток, а сам подпоток вызывает localhost: 7070 / rest / products, и я смог протестировать эту комбинацию.

однако вопрос в том, зачем определятьподпоток для вызова API, который размещен снаружи?Я полагаю, что два потока, о которых вы говорите выше, являются частью двух разных приложений mule.

обратите внимание, что Flow Ref направляет событие Mule в другой поток или подпоток и обратно в том же приложении Mule .Это позволяет вам рассматривать весь ссылочный поток как отдельный компонент в текущем потоке.

Ответ # 2:

Итак, я создал очень простое Java-приложение, которое работает на порту 9090 и возвращает фиктивныйпользователь

enter image description here

enter image description here

теперь у меня запущено приложение mule на порту 8081 с конечной точкой /Пользователь / get, который, как вы можете видеть, вызывает подпоток, в котором находится прослушиватель HTTP

enter image description here

, который вызывает все, что работает на порту 9090 впуть / пользователь

enter image description here

, и я получаю тот же вывод, что и при запуске приложения Java

enter image description here

сейчас, так как я установил, что это работает ... не могли бы вы прислать мне файл xml потока мулов, если вам нужна дополнительная помощь?

...