当前位置: 首页 > 知识库问答 >
问题:

Quarkus-忽略了@path(“/”)的资源,而是从资源加载内容

魏松
2023-03-14

但是,试图使用@path("/“)配置JAX-RS资源时,该资源被忽略,而在resources中找到的第一个文件被加载。

有没有办法防止这种情况并允许资源工作?清除meta-inf/resources时,JAX-RS资源会正确加载。

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/")
public class LandingResource {

    @GET
    @Produces(MediaType.TEXT_HTML)
    public String getLandingPage() {
        return "<html><head><title>Hello World</title></head><body>Hello!</body></html>";
    }

}
curl --location --request GET 'http://localhost:8080/'

答复:

<!doctype html>
<html lang="en">
<head>
    <title>Internal Server Error - Error handling cee4cff3-551d-44e1-9102-5c9ada9d8fb2-7, java.nio.file.InvalidPathException: Illegal char &amp;lt;:&amp;gt; at index 97: <tempdir>\vertx-cache\file-cache-71fbfca9-5ba3-4a3e-8020-8501379cbf2b\<project dir>\src\main\resources\META-INF\resources\assets\icons\icon-128x128.png</title>
    <meta charset="utf-8">
    <style>
html, body {
    margin: 0;
    padding: 0;
    font-family: 'Open Sans', Helvetica, Arial, sans-serif;
    font-size: 100%;
    font-weight: 100;
    line-height: 1.4;
}
...

共有1个答案

柯国安
2023-03-14

通过添加vertx web路由实现了预期的结果:

import io.quarkus.vertx.web.Route;
import io.vertx.core.http.HttpMethod;
import io.vertx.ext.web.RoutingContext;

import javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class LandingRoute {

    @Route(path = "/", methods = HttpMethod.GET)
    public void landing(RoutingContext rc) {
        rc.response().end("hello ");
    }
}

 类似资料:
  • 尝试使用@Path配置JAX-RS资源("/"), 但是,会忽略该资源并加载在资源中找到的第一个文件。 你知道如何防止这种情况并让资源发挥作用吗?清除META-INF/resources时,JAX-RS资源会正确加载。 使用:Quarkus 1.4.2。最终的 openjdk版本“11.0.6”2020-01-14 LTS openjdk运行时环境Zulu11.37 52-SA(构建11.0.6

  • 在使用Maven捆绑JAR文件中的资源时,我有一种感觉,我错过了一些关键的东西。我的目录结构是标准的Maven结构(即\src\main\java,\src\main\Resources)。 使用IDE时,我将资源文件引用为\main\resources\images\blah。。。它工作得很好,但当Maven捆绑JAR文件时,它会将路径放在相对于根的位置(“\ images\blah”),因此没

  • 了解网络下载资源的阶段至关重要。这是修复加载问题的基础。 TL;DR 了解资源时序的阶段。 知道每个阶段提供给Resource Timing(资源时序)API。 在时间轴图表中识别性能问题的不同指示。如连续的透明条或大块绿色。 所有网络请求都被视为资源。当它们通过网络检索时,分为不同的生命周期。Network(网络)面板使用的Resource Timing API和提供给开发者的API是一样的。注

  • 我正在尝试将资源csv文件传递到我的Sprint Boot应用程序使用的jar中。尽管方法获取的资源参数=ReactiveWebContext资源[src/main/Resources/file.csv],但我总是得到该文件不存在的响应 > 在我的项目中,文件位于src/main/resources/file中。csv 正在应用中。属性,我定义: 在config类中: 在内部jar:Config类

  • 当我调用我的api时,在ios9中遇到了这个错误,但它在ios8中运行良好,资源无法加载,因为应用程序传输安全策略要求使用安全连接

  • 浏览器允许我们跟踪外部资源的加载 —— 脚本,iframe,图片等。 这里有两个事件: onload —— 成功加载, onerror —— 出现 error。 加载脚本 假设我们需要加载第三方脚本,并调用其中的函数。 我们可以像这样动态加载它: let script = document.createElement('script'); script.src = "my.js"; docume