[英]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.