Ben tipik kod - Bir Consumer
bir depo ile çalışanTaşıma istisnalar ben Reaktörü 2 ve İşte bahar 4. kullanıyorum
@Consumer
public class ApplicationService {
@Selector(value="/applications/id", type = SelectorType.URI)
@ReplyTo
public Application byApplicationId(String id) throws ApplicationNotFoundException {
Application app = appRepo.findOne(id);
if(app == null)
throw new ApplicationNotFoundException("Application `" + id + "` could not be found.");
return app;
}
}
Bir eventBus
istek geçirir bir denetleyici var içine Ben istekleri geçmek ve bir Promise
@RestController
@RequestMapping("/applications")
public class ApplicationsController {
@RequestMapping(value = "/{id}", method = GET, produces = APPLICATION_JSON_VALUE)
public Promise<Event<Application>> byApplicationId(@PathVariable final String id) {
final Promise<Event<Application>> p = Promises.prepare(env);
eventBus.sendAndReceive("/applications/id", Event.wrap(id), p);
return p;
}
}
şeyler çalışmak ancak ApplicationService
durumunda bir istisna Promise
s değeri ayarlı değil atma dönmek ama inci aşağıdaki alabilirim E konsolu:
16:46:58.003 [main] ERROR reactor.bus.EventBus - null
java.lang.reflect.UndeclaredThrowableException
at org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:302)
...
Caused by: com.metlife.harmony.exceptions.ApplicationNotFoundException: Application `2860c555-0bc4-45e6-95ea-f724ae3f4464` could not be found.
at com.metlife.harmony.services.ApplicationService.byApplicationId(ApplicationService.java:46) ~[classes/:?]
...
Caused by: reactor.core.support.Exceptions$ValueCause: Exception while signaling value: reactor.bus.Event.class : Event{id=null, headers={}, [email protected], key=/applications/id, data=2860c555-0bc4-45e6-95ea-f724ae3f4464}
Sorular şunlardır:
Yanlış şekilde Reactor ve
eventBus
kullanırım? ve eğer öyleyse,belki de bu işlev henüz
' eventBus.sendAndReceive mevcuttur? –
@AnadiMisra hangi noktada? – EvgeniySharapov
Kodunuzu meraktan kurtarmaya çalıştım ve bunu aldım: EventBus türünde sendAndReceive (Object, Event >, Consumer) yöntemi, argümanlar için geçerli değildir (String, Event , Promise >) line, benim Promise nesnesi 'Promise > response = Promises.prepare;' –