尝试使用@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 10-LTS)openjdk 64位服务器VM Zulu11.37 52-SA(构建11.0.6 10-LTS,混合模式)
资源:
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 &lt;:&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;
}
...
默认情况下,Quarkus将从根上下文提供静态资源。这意味着src/main/resources/META-INF/resources/code>中的资源已经映射到root(http://localhost:8080/)。这意味着您无法在根目录上轻松映射标准JAX-RS。
有关详细信息,请参阅留档:https://quarkus.io/guides/http-reference
在您的情况下,您将返回一个固定的HTML登录页。作为一种解决方案,您可以删除LandingResource类,并从静态资源中提供登录页。
这可以通过将超文本标记语言片段放置在src/main/资源/META-INF/资源/index.html
中来实现。
这也是默认Quarkus默认登录页的服务方式。
通过添加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资源时,该资源被忽略,而在resources中找到的第一个文件被加载。 有没有办法防止这种情况并允许资源工作?清除meta-inf/resources时,JAX-RS资源会正确加载。 答复:
在使用Maven捆绑JAR文件中的资源时,我有一种感觉,我错过了一些关键的东西。我的目录结构是标准的Maven结构(即\src\main\java,\src\main\Resources)。 使用IDE时,我将资源文件引用为\main\resources\images\blah。。。它工作得很好,但当Maven捆绑JAR文件时,它会将路径放在相对于根的位置(“\ images\blah”),因此没
我正在尝试将资源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
CodeIgniter 的"自动加载"特性可以允许系统每次运行时自动初始化类库、辅助函数和模型。 如果你需要在整个应用程序中全局使用某些资源,为方便起见可以考虑自动加载它们。 支持自动加载的有下面这些: libraries/ 目录下的核心类 helpers/ 目录下的辅助函数 config/ 目录下的用户自定义配置文件 system/language/ 目录下的语言文件 models/ 目录下的模