【问题标题】:upgrading hibernate causes servlet-api-2.5.jar error in eclipse maven project升级休眠导致eclipse maven项目中的servlet-api-2.5.jar错误
【发布时间】:2013-12-04 19:06:15
【问题描述】:

有人可以告诉我如何进行其他调整,以便我可以在我的 eclipse maven 项目中成功升级到新的 hibernate 版本吗?通过在我的 pom.xml 中更改以下内容,我将 Hibernate 版本更改为 4.2.6.Final:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>4.2.6.Final</version>
</dependency>  

但是,现在 eclipse 项目中的 Markers 选项卡包含以下错误列表:

Description Resource    Path    Location    Type
Unknown tag (form:label).   documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 21 JSP Problem
Unknown tag (form:input).   documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 18 JSP Problem
Unknown tag (form:label).   documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 25 JSP Problem
Unknown tag (form:textarea).    documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 22 JSP Problem
Unknown tag (form:form).    documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 13 JSP Problem
Unknown tag (form:label).   documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 17 JSP Problem
Unknown tag (form:errors).  documents.jsp   /DocumentManager/src/main/webapp/WEB-INF/jsp    line 14 JSP Problem
The project cannot be built until build path errors are resolved    DocumentManager     Unknown Java Problem
The container 'Maven Dependencies' references non existing library 'D:\mypath\.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar' DocumentManager     Build path  Build Path Problem

我检查并发现“D:\mypath.m2\repository\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar”确实存在于我的计算机中。为了安全起见,我还强制进行了额外的 maven 更新,它会在 Markers 选项卡中生成相同的列表。

作为参考,我的 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">
  <modelVersion>4.0.0</modelVersion>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <description></description>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.0.1</version>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>${org.springframework.version}</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
      <version>4.2.6.Final</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.10</version>
    </dependency>
    <dependency>
      <groupId>commons-dbcp</groupId>
      <artifactId>commons-dbcp</artifactId>
      <version>20030825.184428</version>
    </dependency>
    <dependency>
      <groupId>commons-pool</groupId>
      <artifactId>commons-pool</artifactId>
      <version>1.5.4</version>
    </dependency>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.3</version>
    </dependency>
<!-- dependency to fix JSPServletException -->
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>jsp-api</artifactId>
        <version>6.0.32</version>
        <scope>provided</scope>               
    </dependency>
  </dependencies>
  <properties>
    <org.springframework.version>3.2.4.RELEASE</org.springframework.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <groupId>DocumentManager</groupId>
  <artifactId>DocumentManager</artifactId>
</project>  

编辑/回答:

修改jstl标签和升级hibernate的解决方法如下:

<dependency> 
    <groupId>jstl</groupId>  
    <artifactId>jstl</artifactId> 
    <version>1.1.2</version>  
</dependency>  
<dependency>
    <groupId>taglibs</groupId>
    <artifactId>standard</artifactId>
    <version>1.1.2</version>
</dependency>

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-entitymanager</artifactId>
  <version>4.2.6.Final</version>
</dependency>  

请注意,根据下面评论中回答者的建议,javax.servlet 已替换为 jstl。但是,jstl 和 taglibs 节点的版本号 1.1.2 也是相同的。

我在下面标记了一个已接受的答案,因为回答者在他的答案下方的评论中写了接近此的内容,即使他的答案本身的代码最终不是解决方案。

【问题讨论】:

    标签: java eclipse hibernate maven servlets


    【解决方案1】:

    pom.xml中添加servlet-api

            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>provided</scope>
            </dependency>
    

    【讨论】:

    • 谢谢。您是否注意到 servlet-api 2.5 的依赖关系已经在我上面原始帖子的 pom.xml 中?出于对您的建议的尽职调查,我从您的建议中添加了范围提供的标签,然后强制更新 maven,从而消除了未知的标签错误。但是,servlet-api 2.5 的不存在库错误仍然在我的项目的标记选项卡中,尽管使用了您的显式代码。您还有什么建议吗?
    • 你可以尝试将 jstl 依赖项更改为 jstljstl1.2 以及为什么需要最后一个 jsp-api 依赖吗?
    • 再次感谢您。我尝试了您的建议,并在上面的原始帖子中添加了编辑结果。 jsp-api 依赖消除了之前tomcat 不启动的问题。您还有其他建议吗?
    • 我用于 jstl 依赖项语法的参考来自此评论末尾的链接(我在确认语法时升级到 1.2)。使用链接中的语法只会留下我原来的 servlet-api-2.5 不存在错误。你还有什么建议吗? mvnrepository.com/artifact/javax.servlet/jstl/1.2
    • 请注意我在上面原始帖子底部添加的 EDIT/ANSWER。感谢您帮助我走上正轨。
    猜你喜欢
    • 2015-10-21
    • 2017-12-03
    • 1970-01-01
    • 2010-12-13
    • 2017-08-10
    • 2020-09-22
    • 1970-01-01
    • 2018-04-15
    • 2021-03-07
    相关资源
    最近更新 更多