小编Pét*_*res的帖子

在 IntelliJ IDE 中无法选择与 SDKMAN 一起安装的 JDK

哪些步骤会重现该问题?

  • 安装 SDKMAN ( https://sdkman.io ) 命令行工具
  • 使用 sdkman 安装一个或多个 JDK,例如:sdk install java 8.0.232-zulu
  • 在 IntelliJ IDEA 中打开一个项目
  • 导航到“为 JDK 设置主目录”窗口:文件 » 项目结构 » SDKs » +(按钮)» JDK
  • 选择“显示隐藏的文件和目录”
  • 导航到 ~/.sdkman/candidates/java
  • 此处应显示已安装的 JDK 版本 - 但无法打开文件夹

预期的结果是什么?

安装的JDK应该是可选择的

会发生什么?

包含 JDK 的文件夹未显示在浏览器中(图片 #3) 我需要切换回 JDK 8,目前我只能使用 JDK11 中内置的 IDE(无法选择通过 SDKMAN 安装的 11 或 8 JDK 版本)

环境

操作系统:Linux Mint IntelliJ IDEA 2019.3(社区版)Build #IC-193.5233.102,构建于2019年11月28日

可以在 Jetbrains 问题跟踪器中找到屏幕截图和日志https : //youtrack.jetbrains.com/issue/IDEA-228394

java intellij-idea sdkman

15
推荐指数
1
解决办法
6785
查看次数

在 Quarkus 下将 MapStruct 与 Lombok 一起使用

我正在遵循MapStruct 博客上的指南,但在同时使用这 3 种技术时遇到问题。我一直在尝试来自 MapStruct 文档、错误报告、此处帖子的几种方法,但在每种情况下,我最终都会在构建过程中收到以下异常。

有人在 Quarkus 下成功使用 MapStruct 和 Lombok 吗?任何帮助表示赞赏。

compile奇怪的是, a 后的第一个mvn clean总是成功,而第二个compile或运行应用程序会抛出此错误:

Error:(9,8) java: Internal error in the mapping processor: java.lang.RuntimeException:
javax.annotation.processing.FilerException: Attempt to recreate a file for type com.example.service.RawContentDtoMapperImpl
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:59)
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.writeToSourceFile(MapperRenderingProcessor.java:39)
...
Run Code Online (Sandbox Code Playgroud)

映射器配置:

Error:(9,8) java: Internal error in the mapping processor: java.lang.RuntimeException:
javax.annotation.processing.FilerException: Attempt to recreate a file for type com.example.service.RawContentDtoMapperImpl
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.createSourceFile(MapperRenderingProcessor.java:59)
at org.mapstruct.ap.internal.processor.MapperRenderingProcessor.writeToSourceFile(MapperRenderingProcessor.java:39)
...
Run Code Online (Sandbox Code Playgroud)

映射器:

@MapperConfig(componentModel = "cdi")
    public interface QuarkusMappingConfig { …
Run Code Online (Sandbox Code Playgroud)

java lombok mapstruct quarkus

5
推荐指数
2
解决办法
7104
查看次数

两个 Quarkus 服务之间的非阻塞数据流(Vert.x 和 Java 中的 Mutiny)

更新!

在解决了一些与主要问题无关的问题后,我修复了示例代码中的小错误,主要问题仍然是关于服务之间的非阻塞流。

背景资料

我正在 Quarkus 下移植 Spring WebFlux 服务。该服务对多个庞大数据集运行长时间搜索,并在可用时以 Flux(文本/事件流)形式返回部分结果。

问题

现在,我尝试在 Quarkus 下将 Mutiny Multi 与 Vert.x 结合使用,但无法弄清楚消费者服务如何在不阻塞的情况下接收此流。

在所有示例中,消费者要么是 JS 前端页面,要么生产者的内容类型是 application/json,在将其发送到一个 JSON 对象之前,它似乎会一直阻塞,直到 Multi 完成(这在我的应用程序中没有任何意义)。

问题

  1. 如何使用 Mutiny 风格的 Vert.x WebClient 接收文本/事件流?
  2. 如果问题是 WebClient 无法接收连续流:在两个 Quarkus 服务之间传输数据的标准方法是什么?

这是一个简化的例子

测试实体

public class SearchResult implements Serializable {

    private String content;

    public SearchResult(String content) {
        this.content = content;
    }


    //.. toString, getters and setters
    
}
Run Code Online (Sandbox Code Playgroud)

生产者 1. 简单的无限流 -> 挂起

@GET
@Path("/search")
@Produces(MediaType.SERVER_SENT_EVENTS)
@SseElementType(MediaType.APPLICATION_JSON)
public Multi<SearchResult> getResults() { …
Run Code Online (Sandbox Code Playgroud)

java event-stream quarkus vert.x-webclient mutiny

5
推荐指数
1
解决办法
1798
查看次数