尝试使用@Path(“ /”)配置JAX-RS资源,但是,该资源将被忽略,并且将加载资源中找到的第一个文件。
有什么主意如何防止这种情况并使资源正常工作? 清除META-INF /资源时,将正确加载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;
}
...
答案 0 :(得分:1)
通过添加vertx网络路线实现了预期的结果:
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 ");
}
}