簡體   English   中英

在外部 jar 的接口中聲明時,Quarkus 不使用 JaxRs @Path

[英]Quarkus does not use JaxRs @Path when declared in interface in an external jar

我有一個 Java 接口,它聲明與 JaxRs 相關的所有內容,如下所示:

@Path("/notes-service")
public interface NotesApi {

  @POST
  @Path("/notes")
  @Consumes({ "application/json" })
  @Produces({ "application/json" })
  Response createNote(
    @HeaderParam("Accept-Language") @DefaultValue("en") String acceptLanguage,
    @Valid CreateNoteDTO createNoteDTO);

}

該接口作為 jar 的外部依賴項提供。

以及我服務中的一個實現:

@ApplicationScoped
@Transactional
public class NotesService implements NotesApi {

  @Override
  public Response createNote(String range, CreateNoteDTO createNoteDTO) {
    // ...
  }
}

像上面這樣的設置不起作用。 它為端點/notes-service/notes返回 404

但是,當我將@Path部分復制到實現中時,一切正常:

@ApplicationScoped
@Transactional
@Path("/notes-service")
public class NotesService implements NotesApi {

  @Override
  public Response createNote(String range, CreateNoteDTO createNoteDTO) {
    // ...
  }
}

還有另一個解決方法:當我將接口復制粘貼到我的服務中時,它也可以在實現中沒有@Path聲明的情況下工作。

這意味着接口級別的@Path注釋工作得很好(我已經用最少的服務檢查過)。 但是當接口作為依賴項出現時,它就不起作用了。

這是 Quarkus 中的錯誤還是預期的行為?

您需要在 src/main/resources/META-INF 的外部項目中添加一個空的 beans.xml,以便 Quarkus 掃描您的外部 jar 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM