我一直遇到一个WAR模块的问题,它很难加载taglib。我一直收到这个异常:
JSPG0047E:无法定位URI为http://www.springframework.org/tags/form的标签库 at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) ...
经过一番搜索,我发现很多建议是spring jars需要在应用程序的类路径中。我在我的EAR的lib文件夹中检查了一下,确实有spring-web和spring-webmvc。
应该注意的是,EAR是使用skinny WAR构建的,因为它们使用大部分相同的库,所有库文件都在MyAppEAR/lib中,而不是在MyAppEAR/MyWAR1/WEB-INF/lib、MyAppEAR/MyWAR2/WEB-INF/lib、MyAppEAR/MyWAR3/WEB-INF/lib等。
最终,我确实成功解决了这个缺少taglib的错误,但我不得不将spring-web和spring-webmvc移动到MyAppEAR/MyWAR1/WEB-INF/lib中。
所以我有几个问题:
JSPG0047E:无法定位URI为http://www.springframework.org/tags/form的标签库 at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:366) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:419) at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:369) ...
经过一番搜索,我发现很多建议是spring jars需要在应用程序的类路径中。我在我的EAR的lib文件夹中检查了一下,确实有spring-web和spring-webmvc。
应该注意的是,EAR是使用skinny WAR构建的,因为它们使用大部分相同的库,所有库文件都在MyAppEAR/lib中,而不是在MyAppEAR/MyWAR1/WEB-INF/lib、MyAppEAR/MyWAR2/WEB-INF/lib、MyAppEAR/MyWAR3/WEB-INF/lib等。
最终,我确实成功解决了这个缺少taglib的错误,但我不得不将spring-web和spring-webmvc移动到MyAppEAR/MyWAR1/WEB-INF/lib中。
所以我有几个问题:
- Is this the only way to fix this problem?
If so, how can I build a sort-of skinny WAR using maven? Currently, the EAR part of the POM looks like this:
<plugin> <artifactId>maven-ear-plugin</artifactId> <version>2.8</version> <configuration> <applicationName>MyAppEAR</applicationName> <defaultLibBundleDir>lib</defaultLibBundleDir> <skinnyWars>true</skinnyWars>