2015-07-20 3 views
2

Проблема: Я получил эту ошибку:java.lang.NoSuchFieldError: STANDARD_NUMBER_TYPES

java.lang.NoSuchFieldError: STANDARD_NUMBER_TYPES

Ситуация: Я пытаюсь добавить пружинный JPA для Spring Data JPA и с этой конфигурацией диспетчер-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"/> 

Я получаю желтый exlamation знак (на линии :)

<jpa:repositories base-package="pl.test.library.dao"/> 

, который говорит:

Unable to locate Spring NamespaceHandler for element 'jpa:repositories' of schema namespace ' 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 (уточненный вариант) Я получаю эту ошибку только в конце запуска сервера:

root cause java.lang.NoSuchFieldError: STANDARD_NUMBER_TYPES org.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.http.HttpServlet.service(HttpServlet.java:618) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843) javax.servlet.http.HttpServlet.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> 
+0

проверить класс NumberUtils – andy

+0

Спасибо Andy! Проверка этого класса приведет меня к https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/util/NumberUtils.java, который заставил меня думать У меня есть ** весенне-ядерная зависимость ... И я этого не сделал, поэтому это было решение. – efem

ответ

0

Изменить местоположение 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"> 
+0

Кажется не работает – webjockey

+0

Вы уверены? Это даже не кажется корректным XML. –

+0

Спасибо, что поймал его, я исправил его сейчас. Я предлагаю заменить xsi: schemaLocation в xml и попробовать. –

0

Это может быть потому, что у вас есть повторяющиеся весной библиотеки в вашей сборке.

Если вы используете Intellj, вы можете проверить свой каталог out/artifacts/.._war_exploded/WEB-INF/lib.