但是,尝试使用 @Path("/") 配置 JAX-RS 资源时,该资源将被忽略,并加载在资源中找到的第一个文件。
知道如何防止这种情况并使资源正常工作吗?清除 META-INF/resources 时,JAX-RS 资源会正确加载。
使用:Quarkus 1.4.2.Final
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) 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>";
}
}
Run Code Online (Sandbox Code Playgroud)
测试:
curl --location --request GET 'http://localhost:8080/'
Run Code Online (Sandbox Code Playgroud)
回复:
<!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;
}
...
Run Code Online (Sandbox Code Playgroud)
小智 0
默认情况下,Quarkus 将从根上下文提供静态资源。这意味着里面的资源src/main/resources/META-INF/resources/已经映射到根目录(http://localhost:8080/)。这意味着您无法轻松地将标准 JAX-RS 映射到根上。
有关更多信息,请参阅文档:https ://quarkus.io/guides/http-reference
在您的情况下,您将返回一个固定的 HTML 登录页面。作为解决方案,您可以删除 LandingResource 类并从静态资源提供登录页面。
这可以通过将 HTML 片段放入 中来实现src/main/resources/META-INF/resources/index.html。
这也是 Quarkus 默认登陆页面的服务方式。
| 归档时间: |
|
| 查看次数: |
3334 次 |
| 最近记录: |