kotlin - 在 Quarkus 中使用通用资源进行 API 调用
问题描述
我正在 Kotlin 和 Quarkus 中创建一个应用程序。现在我创建了一个通用资源,需要由我的其他资源继承以减少代码冗余。当我的 UserResource 继承 GenericResource 时,我收到以下消息:
It's not possible to add a synthetic constructor with no parameters to the unproxyable bean class
我对 Kotlin 和 Quarkus 还很陌生,当我在谷歌上搜索这个特定的错误消息时,我只得到 Quarkus 本身的一个旧错误的结果。下面是我的 UserResource 和 GenericResource:
@ApplicationScoped
@Path("/users")
class UserResource(user: UserRepository): GenericResource<User>(user)
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
open class GenericResource<T : Any>(
private var repository: PanacheRepository<T>
) {
@GET
@Produces(MediaType.APPLICATION_JSON)
fun findAll() : PanacheQuery<T> = repository.findAll()
@POST
@Transactional
fun add(
@Valid resource: T
) : AddResponse =
try {
repository.persist(resource)
AddSuccess(resource)
} catch (e: Exception) {
AddFailure(e)
}
@GET
@Path("/{id}")
fun findById(
@PathParam("id")
id : UUID
) : Uni<T> = repository.find("id", id).firstResult()
@PUT
@Transactional
@Path("/{id}")
fun update(
@PathParam("id")
id : UUID,
resource: T
) : UpdateResponse =
try {
repository.persist(resource)
UpdateSuccess(resource)
} catch (e: Exception) {
UpdateFailure(e)
}
@DELETE
@Transactional
@Path("/{id}")
fun delete(
@PathParam("id")
id : UUID
) : DeleteResponse =
try {
repository.delete("id", id)
DeleteSuccess("Deletion successful")
} catch (e: Exception) {
DeleteFailure(e)
}
}
这些是我正在使用的 RESTeasy 依赖项:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-resteasy-jackson</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-rest-client-jackson</artifactId>
</dependency>
有谁知道我做错了什么?
解决方案
推荐阅读
- ruby - Selenium::WebDriver::Error::UnknownError:未知错误:attribute_value.lastIndexOf 不是函数
- sql - Oracle SQL 处理具有相同条目名称的 JSON 时的问题
- python - 使用 matplotlib 在地图图片上绘制轨迹
- firebase - firebase 会话 cookie 和存储规则
- c# - C# 替换前导撇号 Excel COM
- ruby - 仅将对象 ID 或整个对象传递给方法
- python - Using both leaf and stem images for plant disease detection using convolution neural network?
- json - 如何将空 JSON 值设置为 JMeter 变量
- javascript - 带有 sql 的 EventSources 在 Fullcalendar 中不起作用
- java - 在 Java 控制台中显示分隔数据