我已经使用嵌入式jetty创建了一个测试.jsp文件和.tag文件的测试框架。我正在使用Java API以编程方式启动Jetty服务器,添加servlet holder和包装器测试JSP并初始化通过项目web根目录的服务器。 从maven surefire插件运行时,Jasper在运行时发现TLD位置存在一些问题。我通过提供
修复了它<useManifestOnlyJar>false</useManifestOnlyJar>
插件类路径设置。现在,当我使用mvn clean install运行测试时,一切正常。
从eclipse上下文菜单运行测试有一个问题。如果多模块maven构建中的工作空间中有任何其他项目,则该项目中的TLD不会被解析。我试过的一个解决方法是在eclipse工作区中“关闭”项目,然后就可以了。
但是我希望它能够在工作区中打开并从eclipse JUnit上下文菜单运行的所有项目中运行。问题出在jasper TldScanner中,它只在jar和当前项目的WEB-INF中查找tld文件。
TldScanner.scanTlds()
processWebDotXml();
scanJars();
processTldsInFileSystem("/WEB-INF/");
我正在使用带有Jetty-8.1.0-RC5的org.glassfish.web.jsp-impl 2.2.2-b06版本。
有没有办法为jasper指定基于文件的TLD扫描以获取额外的类路径项?