【问题标题】:Runtime error in my custom quarkus extension我的自定义 quarkus 扩展中的运行时错误
【发布时间】:2022-01-02 14:57:19
【问题描述】:

我正在编写一个非常简单的 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

谁能帮我解决这个问题?

谢谢

【问题讨论】:

    标签: java exception jax-rs quarkus


    【解决方案1】:

    如果有人会遇到同样的问题,那是因为我的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>
    

    【讨论】:

      猜你喜欢
      • 2021-03-10
      • 2021-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 1970-01-01
      相关资源
      最近更新 更多