我正在撰寫一個非常簡單的 quarkus 擴展:我想定義一些關于錯誤管理的特定類。例如:我想初始化一個捕獲一些自定義例外的 Jaxrs ExceptionMapper。
無論如何,我試圖做的是:
部署模塊:
public class ErrorManagerProcessor {
private static final String EXCEPTION_MAPPER_FEATURE = "exception-mapper";
private static final Class<? extends ExceptionMapper<?>> EXCEPTION_MAPPER_CLASS =
RestExceptionMapper.class;
@BuildStep
FeatureBuildItem createFeatureItem() {
return new FeatureBuildItem(EXCEPTION_MAPPER_FEATURE);
}
@BuildStep
ResteasyJaxrsProviderBuildItem create() {
return new ResteasyJaxrsProviderBuildItem(EXCEPTION_MAPPER_CLASS.getName());
}
@BuildStep
void registerJaxRsProviders(final BuildProducer<ResteasyJaxrsProviderBuildItem> providers) {
providers.produce(create());
}
}
在我的運行時模塊中,我定義了我的例外、我的映射器和一個基本的 POJO:
public class RestException extends RuntimeException{
public final ErrorMessage errorMessage;
public final Status status;
public RestException(String code, String message, Status status) {
this.errorMessage = new ErrorMessage(code, message);
this.status = status;
}
}
我的映射器
@Provider
public class RestExceptionMapper
implements ExceptionMapper<RestException> {
@Override
public Response toResponse(RestException e) {
return Response
.status(e.status)
.entity(e.errorMessage)
.build();
}
}
我的單元測驗和集成測驗沒問題,但是當我在開發模式下運行 quarkus 應用程式并加載我的擴展時,我收到一個奇怪的錯誤:
java.lang.ClassNotFoundException: io.quarkus.test.common.http.TestHTTPConfigSourceProvider
任何人都可以幫助我嗎?
謝謝
uj5u.com熱心網友回復:
如果有人會面臨同樣的問題,那是由于我的范圍定義錯誤deployment/pom.xml:
前:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5-internal</artifactId>
</dependency>
后:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-junit5-internal</artifactId>
<scope>test</scope>
</dependency>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/367687.html
上一篇:為什么我們在DbContext中使用DependecyInjection而不是OnConfiguringMethod?
