java - 从 Eclipse 运行找不到 tld 文件,但在 jar 中运行它可以工作

标签 java eclipse spring spring-boot taglib

读完 Spring Boot with JSPs in Executable Jars 后,我将 Spring Boot 项目从打包为 war 转换为 jar

虽然只要项目作为 jar 运行,一切都可以正常工作,但当我在 Eclipse 中启动主类时,它就不起作用了。项目启动,但是当我访问它时,出现以下异常:

org.apache.jasper.JasperException: /WEB-INF/views/login.jsp (line: 6, column: 2)
The absolute uri: http://my.project/tags cannot be resolved in either web.xml
or the jar files deployed with this application

tld 文件位于 /src/main/resources/META-INF/mytags.tld 中,请参阅以下摘录:

<tlib-version>2.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>My Tag library</short-name>
<uri>http://my.project/tags</uri>
<display-name></display-name>
<small-icon></small-icon>
<large-icon></large-icon>
<description></description>

函数和标签作为源文件存在于我的项目中,因此它们位于类路径中并且可供 Eclipse 访问。

这里有什么问题吗?

最佳答案

您能否尝试将您的 TLD 添加到 src/main/resources/META-INF/resources/WEB-INF 中?跨 servlet 容器(当使用可执行 jar 时)处理 Taglib 似乎很挑剔,并且不可否认,我已经有一段时间没有使用自定义 taglib 了。不过,根据我迄今为止的经验,META-INF/resources/WEB-INF 的行为与 war 部署(使用 Tomcat)相同。

以下讨论也可能有用:

http://www.coderanch.com/t/522567/java-Web-Component-OCEJWCD/certification/location-TLDs

关于java - 从 Eclipse 运行找不到 tld 文件,但在 jar 中运行它可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36129520/

相关文章:

Java Eclipse(android)无法将数据插入mongodb数据库

java - 我如何确定 Oracle session 已关闭?

JavaFX ListView 从两个列表中选择项目

java - 从大字符串中提取 int

java - RoboVM 使用 AudioQueue 实现录制演示导致 "No @Marshaler found"错误

android - eclipse 告诉我我的项目有错误,没有什么是红色突出显示的

java - 当 `!` 应用于 `&&` 或 `||` 时,什么简化了表达式

java - 为什么我不能在java中更改所需文件的文件扩展名?

java - 如何为 spring-ws 合约定义 XSD 以返回序列化图像?

spring - 连接到mysql时随机拒绝访问