Quarkus项目曾经覆盖多模块形式,当击中现有端点时得到404

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Quarkus项目曾经覆盖多模块形式,当击中现有端点时得到404相关的知识,希望对你有一定的参考价值。

quarkus.version:1.0.1.Final

过去曾具有易于使用的端点的有效的quarkus Web项目。

将其转换为多模块之一。

仍使用maven

这种方式:

 my-project-service
   - my-project-api
     - data-api-object.java
     - pom.xml // dep on `quarkus-core` as `provided`
   - my-project-backend
     - pom.xml  + depends on my-project-api
   - pom.xml // managed dependencies defined

实际上类似于this example。>

全部编译并运行。

./mvnw compile quarkus:dev

我看到日志:

- [io.quarkus] (main) Quarkus 1.0.1.Final started in 1.595s. Listening on: http://0.0.0.0:8080
- [io.quarkus] (main) Installed features: [agroal, cdi, infinispan-client, jaeger, narayana-jta, reactive-pg-client, rest-client, resteasy, resteasy-jackson, smallrye-context-propagation, smallrye-fault-tolerance, smallrye-health, smallrye-metrics, smallrye-openapi, smallrye-opentracing, swagger-ui, vertx]

但是当我击中一次工作端点时:

http://localhost:8080/my-project-service/stuff

我得到了:404

如果我检查自己的健康检查网址:http://localhost:8080/my-project-service/health/ready

在my-project-backend中/ ... / resources / application.properties中

quarkus.application.name=my-project-service
quarkus.http.root-path=/my-project-service

所以我实际上必须打电话给http://localhost:8080/my-project-service/。这尚未更改。

我想,呼叫从未到达应用程序。

Q:

可能是什么问题?

UPDATE:

我在运行时得到了那个空指针。

仅供参考:可能/ src / main / etc文件夹为空-父pom项目(pom)中没有源。

Listening for transport dt_socket at address: 5005
Exception in thread "main" java.lang.RuntimeException: java.lang.NullPointerException
        at io.quarkus.dev.DevModeMain.main(DevModeMain.java:70)
Caused by: java.lang.NullPointerException
        at sun.nio.fs.UnixPath.normalizeAndCheck(UnixPath.java:77)

我确实清理了/ target文件夹等...没有帮助。

我可以到达http://localhost:8080/swagger-ui/-它可以正常工作,但为空。一旦工作http://localhost:8080/my-project-service/swagger-ui/也会得到404。

(可能与此fix相关]

我试图将resources / application.properties(不确定应该在哪里)移动到我的根项目中。没有效果。

P.S。我也将所有(也)转换为Gralde。相同的问题。

UPDATE 2:

  • 切换到最新(现在是1.1.0.CR1)版本
  • 现在我看到了一些新的例外:-Failed to start Quarkus: java.lang.IllegalArgumentException: Multiple matching properties for name "datasource.url"即使每个环境只有一个,但对于开发人员来说只有一个:%dev.quarkus.datasource.url

  • 我想这只是一个新错误。回滚我过去的位置。

    UPDATE3:

如果我编译本机,则应用程序将在其余请求上工作/反应。似乎仅与开发有关(可能与热重装有关)。

quarkus.version:1.0.1.Final用于具有可轻松使用的端点的有效quarkus Web项目。将其转换为多模块之一。仍然使用Maven。这样:my-project-service-my-project -...

答案

到目前为止,(基于git thread使它起作用:

以上是关于Quarkus项目曾经覆盖多模块形式,当击中现有端点时得到404的主要内容,如果未能解决你的问题,请参考以下文章

如何覆盖 Quarkus 中的属性?

“dev”配置覆盖 Quarkus 中的“test”配置

如何在 Quarkus 中覆盖一个单元测试的配置属性

如何在 Quarkus 中以编程方式覆盖应用程序属性

mutiModule maven 项目的综合声纳报告

maven多模块项目中的模块级声纳分析