【问题标题】:cannot find tag library descriptor for spring framework in maven eclipse project在 Maven Eclipse 项目中找不到 Spring 框架的标签库描述符
【发布时间】:2013-11-19 23:26:19
【问题描述】:

documents.jsp顶部的以下三行在this tutorial使用eclipse和maven的spring框架应用程序中抛出“cannot find tag library descriptor for ...”错误:

<%@ taglib uri="http://www.springframework.org/tags"  prefix="spring"%>  
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>  

我的理解是eclipse的maven插件应该自动管理这些库的下载,所以我检查确保pom.xml中包含以下内容:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>${org.springframework.version}</version>
</dependency>

<properties>
  <org.springframework.version>3.0.2.RELEASE</org.springframework.version>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>  

那么如何修复我的应用程序以启用所需的依赖项?我想避免手动操作,因为我的印象是 maven 应该管理这个。有什么方法需要我操纵 Maven 吗?该应用程序在针对本教程进行测试时显然有效。

编辑:

我将我的 eclipse 项目转换为 maven 项目,然后右键单击 eclipse 项目并选择 Maven>Update Project。这并没有解决我上面原始帖子中仍然存在的错误,但它还添加了以下新错误:

Missing artifact javax.transaction:jta:jar:1.0.1B  

现在是pom.xml的第二行抛出的,内容如下:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

第二次编辑:

当我尝试在服务器上运行 as..run 时,我在对话框中收到以下错误:

'Publishing to Tomcat v7.0 Server at localhost...' has encountered a problem.

Error reading file D:\mypath\.m2\repository\javax\transaction\jta\1.0.1B\jta-1.0.1B.jar
D:\mypath\.m2\repository\javax\transaction\jta\1.0.1B\jta-1.0.1B.jar (The system cannot find the file specified)  

我什至在Window>preferences>Maven中设置了“启动时更新Maven项目”,然后关闭并重新启动eclipse,但问题仍然存在。

【问题讨论】:

  • 你确定这对于 spring 而不是核心 taglibs 失败了吗?你能添加堆栈跟踪吗?
  • @benjamin.d 我刚刚在 Eclipse 中查看代码,所以没有堆栈跟踪。当我阅读您的评论时,我尝试运行为...在服务器上运行,并在我对原始帖子的第二次编辑中显示了错误对话框,这是我刚刚在上面添加的。
  • 只要它在项目的 Java 构建路径中不知何故,就会被找到。可能是 Maven 更新项目的方法没有触发正确的刷新。尝试关闭然后打开项目以强制它。

标签: java eclipse spring maven


【解决方案1】:

我通过了同样的问题,我收到了消息

"cannot find tag library descriptor for ..."

我解决了将 spring-webmvc 放入我的战争的问题。当 spring-webmvc 在服务器文件夹中时发生此错误。

我建议你看看你是如何包装你的战争的。

【讨论】:

  • 谢谢。我可能最终会诉诸于此。但我应该能够从 Eclipse 运行...在服务器上运行。每次我需要在开发期间运行测试时将其捆绑到战争中会变得非常耗时。
  • @CodeMed 如果问题是单元测试,您可以添加行 -Dmaven.test.skip=true 跳过单元测试,在适当的 Eclipse 中,您可以选择跳过来自 maven 的测试
  • 问题是我的 pom.xml 对 jstl 和 taglibs 依赖项有不同的版本号。一个是 1.1.2,另一个是 1.2。当我将它们都更改为相同的版本号时,一切正常,并且我能够在 Eclipse 中运行为...在服务器上运行。但感谢您跟进。
猜你喜欢
  • 2012-07-05
  • 1970-01-01
  • 2011-10-18
  • 1970-01-01
  • 2011-01-16
  • 2011-05-12
  • 2017-03-01
  • 2016-11-10
  • 2015-03-21
相关资源
最近更新 更多