java - Jetty - 使用 JSP 将 WAR 部署到嵌入式 Jetty

标签 java jetty embedded-jetty

我打开了之前的票证 ( Deploying existing WAR to embedded Jetty ),指出我在将 WAR(包含 JSP 页面)部署到 Jetty 时遇到问题。看来我接受的解决方案不起作用(我被困住了,当时我很高兴我得到了一个不同的异常)。

所以我得到了以下异常:

An error occurred at line: [52] in the generated java file: [/tmp/embedded-jetty-jsp/jsp/org/apache/jsp/WEB_002dINF/jsp/MainLayout_jsp.java]
Syntax error on token "<", ? expected after this token

有人建议我从 WAR 中删除 jSTL 和标准 JAR。我这样做了,并将它们添加到类路径中(但在 WAR 之外)。
现在我得到以下内容

javax.servlet.ServletException: org.apache.jasper.JasperException: /WEB-INF/jsp/MainLayout.jsp (line: 11, column: 0) The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

通常这意味着使用较旧的 JSTL(其中应用 http://java.sun.com/jSTL/core URI)。我只使用 jSTL-1.2.jar,所以在我的例子中,这意味着找不到 jSTL JAR。

因此,我使用单个类来启动 Jetty,并将 JAR(如 JSTL 和标准 JAR)添加到包含该单个类的 JAR 的 MANIFEST 文件中。

所有其他信息都可以在上一张票中找到。
我尝试了几种方法,所以现在陷入困境。

知道会出什么问题吗?
谢谢,
五、

最佳答案

请小心放置 jSTL.jar 文件的位置以及声明 WebAppContext 自己的 ClassLoader 的方式。这很重要。

TldScanner 需要一堆东西,如果其中任何一个不正确,则找不到标记库(包括 jSTL 标准标记库)

参见:

关于java - Jetty - 使用 JSP 将 WAR 部署到嵌入式 Jetty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48867353/

相关文章:

java - 泽西 + jetty + JSON

hadoop - YARN正常工作时资源管理器日志错误

java - 带有嵌入式 Jetty 的 Swagger

java - 我怎样才能使非辅助依赖成为辅助依赖?

java - 没有接口(interface)的java中的完全抽象

java - Atmosphere - 如何从 struts 2 action 推送数据

java - 阻止 servlet 访问 Jetty 中的文件系统或其他 Java 核心库(如 Google App Engine)?

java - 需要根据一些业务逻辑设置多个处理程序

java - 对 servlet 请求调用 startAsync() 会在由 Jetty 9 的 ProxyServlet 终止的过滤器链中抛出 IllegalStateException

java - 如何在使用 PDPageContentStream/PDDocument 时处理 Java 中的非 ASCII 字符