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

时间:2016-03-21 11:13:00

标签: java eclipse spring spring-boot taglib

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

虽然只要项目作为jar运行,一切正常但是当我在Eclipse中启动main类时它不起作用。项目启动,但是当我访问它时,我得到以下异常:

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访问。

这里有什么问题?

1 个答案:

答案 0 :(得分:2)

您可以尝试将自己的TLD添加到//= require jquery //= require jquery.turbolinks //= require jquery_ujs //= require turbolinks //= require bootstrap-sprockets //= require twitter/typeahead.min //= require nested_form_fields 吗?对于servlet容器(使用可执行jar)时,Taglibs的处理看起来很挑剔,并且我承认我有一段时间没有使用自定义taglib。不过,根据我的经验,src/main/resources/META-INF/resources/WEB-INF的行为与战争部署相同(使用Tomcat)。

以下讨论也可能有用:

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