问题:我得到了这个错误:
java.lang.NoSuchFieldError:STANDARD_NUMBER_TYPES
情况:我正在尝试为SpringDataJPA添加spring-jpa,并使用dispatcher-servlet.xml 的此配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:jpa="http://www.springframework.org/schema/data/jpa"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.1.xsd">
...
<jpa:repositories base-package="pl.test.library.dao"/>
我得到黄色的退出标记(在行:(
<jpa:repositories base-package="pl.test.library.dao"/>
上面写着:
无法找到元素的Spring NamespaceHandler架构命名空间的"jpa:repositions"'http://www.springframework.org/schema/data/jpa'
所以我打赌缺少一些依赖关系。添加后:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.8.1.RELEASE</version>
</dependency>
在尝试启动apache(最新版本(时,我在服务器启动结束时收到了这个错误:
根本原因java.lang.NoSuchFieldError:STANDARD_NUMBER_TYPESorg.springframework.web.context.request.ServletRequestAttributes。(ServletRequestAttributes.java:55(org.springframework.web.servlet.FrameworkServlet.buildRequestAttributes(FrameworkServlet.java:1032(org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:959(org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858(javax.servlet.httpHttpServlet.service(HttpServlet.java:618(org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843(javax.servlet.httpHttpServlet.service(HttpServlet.java:725(org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52(
尝试添加以下不同的组合,但也没有运气:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons-core</artifactId>
<version>1.4.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
更改shcemaLocation,架构位置似乎是这里的问题。
来自
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa-1.1.xsd">
至
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
这可能是因为您的构建中有重复的spring库。
如果您正在使用Intellj,您可以检查您的out/artifacts/.._war_exploded/WEB-INF/lib
目录。