【发布时间】:2020-10-29 13:19:32
【问题描述】:
我曾尝试从我的 Mongo 存储库中获取 Mono。但是我的调试器在收到来自作为 Mono 对象的 repo 的响应并将 block() 应用到它后丢失了。
这是详细的代码...
private Map<String, Object> parameters(Bid bid,String tripId) {
final Map<String, Object> parameters = new HashMap<>();
ShipperLoad shipperLoad = (ShipperLoad)bid.getLoad();
// getting supplier data from other service..
SupplierUserDTO supplier =
WebClient.
create("http://localhost:8888/XXXXXXXX/"+bid.getSupplierId())
.get()
.retrieve()
.bodyToMono(SupplierUserDTO.class)
.block();
TripInvoiceDetails tripInvoice = bidService.getInvoiceDetails(tripId).block();
parameters.put("load", shipperLoad);
parameters.put("bid", bid);
parameters.put("logo", getClass().getResourceAsStream(logo_path));
parameters.put("supplier", supplier);
parameters.put("invoice", tripInvoice);
return parameters;
}
投标服务方式:
public Mono<TripInvoiceDetails> getInvoiceDetails(String tripId)
{
Mono<TripInvoiceDetails> invoice = tripInvoiceRepository.findByTripId(tripId);
return invoice;
}
存储库
public interface TripInvoiceRepository extends ReactiveMongoRepository<TripInvoiceDetails, String>{
Mono<TripInvoiceDetails> findByTripId(String tripId);
}
bidService.getInvoiceDetails(tripId).block(); 失去控制权
TripInvoiceDetails.java
@Data
@Document("tripInvoice")
@NoArgsConstructor
@AllArgsConstructor
public class TripInvoiceDetails {
@Id
String id;
String invoiceNo;
Double invoiceamount;
Double invoiceamountGst;
ValueLabel packageType;
Integer noOfUnits;
ValueLabel materialType;
List<ValueLabel> materialTypeSecondary;
String hsnCode;
String consigneeName;
String address;
String gstOrPan;
String tripId;
String transporterId;
String shipperName;
String loadId;
}
已解决
try {
//pls don't remove futureData since. it is required to resolve futureData of Mono..
CompletableFuture<TripInvoiceDetails> futureData = tripInvoice.toFuture();
invoice = tripInvoice.toFuture().get();
} catch (Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
你等了多久?也许默认超时非常高。
-
您好,我将通话进行到 1 小时。在没有响应后,我强制完全终止它。
-
我在这里添加屏幕截图.. 没有控制台日志或错误记录在那里。请参考添加的日志
-
非常感谢,问题已解决,当我休息时。 block() 语句插入请看附件代码 sn-p..
标签: spring spring-boot spring-webflux