首页 > 解决方案 > Quarkus 如何提供 JSP 文件

问题描述

我一直在研究 Quarkus 以及如何在保持现有 JSP 基础的同时将其用于新开发。

在这一点上,将我们所有的 JSP 重写为 servlet 和 html 文件是不合理的。这是我们最终可以为之奋斗的目标,但目前还不行。因此,我一直在尝试配置 Quarkus,以便能够为我的 JSP 文件提供服务。

现在需要注意的是,我们的 JSP 非常古老,并且是由基本上不了解 JSP 技术的人编写的。它们大多是 scriplet 代码,几乎没有围绕 scriplet 的 html。

所以我从使用引导方法的标准 Quarkus“入门”应用程序开始。那工作得很好。所以我随后添加了一个 resources->META-INF->resources名为 test.jsp 的新文件。这是一个非常基本的文件,没有添加任何特殊内容。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Test JSP</title>
</head>
<body>

</body>
</html>

mvnw compile quarkus:dev我使用从应用程序根文件夹启动应用程序。一切都运行了,我可以在 localhost:8080 访问默认的 index.html。但是,当我尝试加载 JSP 文件 localhost:8080/test.jsp 时,浏览器想要下载该文件。

进一步研究,我发现并在 application.properties 文件中添加了一些设置(https://quarkus.io/guides/http-reference

quarkus.http.root-path=/
quarkus.servlet.context-path=/resources

但后来我只能通过 localhost:8080/test/ 进入 html 页面,但浏览器仍然想下载 JSP 文件。

我尝试的最后一件事是配置一个 undertow 服务器,以forcube/undertow-jsp-sample为例。不幸的是,使用 Quarkus 启动开发服务器的方式,没有加载主类,因此没有启动 undertow 容器。

我通过所有这些来问,是否可以使用 Quarkus 提供 JSP 文件?如果是这样,那我错过了什么?

标签: jspquarkus

解决方案


Quarkus 不支持 JSP,我不希望他们会添加对它的支持。无论如何,您可以使用带有 Freemarker 的 Struts 2 https://github.com/apache/struts-examples/tree/master/quarkus


推荐阅读