Описание проблемы:
Клиент Omega не выполняет команды, отправленные сервером Alpha.
Помогите разобраться с этой проблемой. Клиент Omega может обрабатывать обычные вызовы, но не выполняет инструкции, отправленные с сервера Alpha, при этом сервер Alpha не выдаёт ошибок.
Параметры вызова сервиса следующие: используются строки или базовые типы, а также map для передачи параметров. Я добавил в Alpha bean jar, связанный с параметрами, но клиент Omega по-прежнему выдаёт ошибку. Использование строк или базовых типов, а также передача параметров через map и вызов методов компенсации не вызывают проблем.
Информация об ошибке:
2019-01-07 19:25:39.983 WARN 18736 --- [nio-6060-exec-2] .m.m.a.ExceptionHandlerExceptionResolver : Resolved exception caused by handler execution: cn.com.aiidc.hicloud.component.bean.exception.HicloudException
2019-01-07 19:25:40.351 INFO 18736 --- [ault-executor-4] s.p.o.c.g.s.GrpcCompensateStreamObserver : Received compensate command, global tx id: 31c67d8e-1ced-4f70-83b6-7c151186120f, local tx id: a5cc191d-e50b-4c69-bb53-bb61309a1049, compensation method: public boolean cn.com.aiidc.hicloud.demo.service.impl.OrderServiceImpl.cancelCreateOrder(cn.com.aiidc.hicloud.component.bean.vo.order.CreateOrderVo)
2019-01-07 19:25:40.357 ERROR 18736 --- [ault-executor-4] o.a.s.p.o.c.g.c.ReconnectStreamObserver : Failed to process grpc coordinate command.
io.grpc.StatusRuntimeException: CANCELLED: Failed to read message.
at io.grpc.Status.asRuntimeException(Status.java:526) ~[grpc-core-1.14.0.jar:1.14.0]
at io.grpc.stub.ClientCalls$StreamObserverToCallListenerAdapter.onClose(ClientCalls.java:420) [grpc-stub-1.14.0.jar:1.14.0]
A
Ответ:
На самом деле, Alpha не выполняет операции десериализации, поэтому добавление класса cn.com.aiidc.hicloud.component.bean.vo.order.CreateOrderVo в Alpha не имеет особого смысла.
После обсуждения выяснилось, что проблема возникла после добавления следующей зависимости:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
Удаление этой зависимости из Maven решило проблему с вызовом метода компенсации. Подробнее см.: https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html#using-boot-devtools-known-restart-limitations
Комментарий:
Добавление spring-boot-devtools изменяет classloader в Omega, что приводит к ошибкам при поиске соответствующих сигнатур методов.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )