может ли кто-нибудь помочь мне со следующей ошибкой [дублировать]

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
54
задан AdrieanKhisbe 24 December 2014 в 17:34
поделиться

9 ответов

Вы не указали расположение схемы пространства имен контекста, что является причиной этой конкретной ошибки:

<beans .....
  xmlns:context="http://www.springframework.org/schema/context"
  xsi:schemaLocation="
    http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd">
120
ответ дан kuporific 19 August 2018 в 05:07
поделиться
  • 1
    Моя проблема заключалась в том, что я указал расположение схемы wrong . Лучше дважды проверьте его или скопируйте / вставьте отсюда. – vadipp 30 October 2015 в 06:27
  • 2
    Ошибка, потерянная ТОЛЬКО при помещении существующего «xmlns: context», непосредственно перед "xsi: schemaLocation" спекуляция Thanx для предложения. – tjm1706 31 October 2016 в 19:23
  • 3
    +1. Этот ответ можно было бы улучшить, выделив то, что отличается между ответом и кодом op, или только уменьшив пример до соответствующих строк. – Madbreaks 7 June 2018 в 19:41

Этот путь расположения схемы неверен:

http://www.springframework.org/schema/beans

Правильный путь должен заканчиваться на /:

http://www.springframework.org/schema/beans/
6
ответ дан arghtype 19 August 2018 в 05:07
поделиться
  • 1
    Я не очень уверен, что это правда. – rslj 14 August 2017 в 18:39
  • 2
    Конечная косая черта не имеет отношения к проблеме. Этот ответ не должен иметь столько голосов, сколько в настоящее время. – Scarfe 26 March 2018 в 07:56

Если вы используете STS , вы можете в Eclipse пометить файл конфигурации как файл конфигурации «Bean Configuration» (вы можете указать, что при создании или щелчке правой кнопкой мыши по XML-файлу):

У проекта должен быть Spring Nature (например, правый клик на проекте maven):

, тогда spring.xml открывается по умолчанию с помощью редактора Spring Config

, и этот редактор имеет вкладку Пространства имен

Позволяет указать пространства имен:

Обратите внимание, что это зависит на зависимостях (с использованием проекта maven), поэтому, если spring-tx не задано в p.m.xml maven, опция отсутствует, что предотвращает наличие Подстановочный шаблон является строгим, но для элемента ' tx: связанная с аннотацией проблема «контекст: компонент-сканирование» ...

4
ответ дан Community 19 August 2018 в 05:07
поделиться
  • 1
    Это помогло мне определить проблему, с которой я столкнулся. Я пропустил добавление spring-web зависимости в помпе – ring bearer 13 August 2015 в 13:07
  • 2
    Также убедитесь, что если вы укажете конкретную версию схемы Spring в заголовке xsi: schemaLocation, которая соответствует версиям (-ам) этой схемы, перечисленным в файле spring.schemas и в комплекте с этой весенней банкой. – Matthew Wise 10 May 2016 в 15:43
  • 3
    У меня была точно такая же проблема, связанная с безопасностью http. Корневой причиной была нехватка весенней безопасности-конфига. добавив эту банку в качестве времени компиляции maven, она решила проблему для меня. – nirmalsingh 28 June 2017 в 13:45

С объявлением пространства имен и расположением схемы вы также можете проверить синтаксис использования пространства имен, например: -

<beans xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation= http://www.springframework.org/`enter code here`schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

<context:annotation-driven/>   <!-- This is wrong -->
<context:annotation-config/> <!-- This should work -->
0
ответ дан Draken 19 August 2018 в 05:07
поделиться
  • 1
    Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - Из обзора – jpp 8 August 2018 в 10:04

Это слишком поздно, но может быть полезно другим

Соответствующий шаблон является строгим, но для контекста элемента не найдено объявления: компонент-сканирование

, который означает, что вы пропустили некоторые объявления или требуемые декларации, не найденные в вашем XML

В моем случае я забыл добавить следующее

После добавления этой проблемы ушел

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
1
ответ дан RAJESH KUMAR ARUMUGAM 19 August 2018 в 05:07
поделиться

Эта ошибка также может быть вызвана, если файл jar, содержащий необходимый XSD, не включен в ваш путь к развертываемому классу.

Убедитесь, что зависимости доступны в вашем контейнере.

3
ответ дан sweetfa 19 August 2018 в 05:07
поделиться
  • 1
    У меня была проблема, связанная с безопасностью http, описанной выше в ответе Дэвида. Корневой причиной была нехватка весенней безопасности-конфига. добавив эту банку в качестве времени компиляции maven, она решила проблему для меня. – nirmalsingh 28 June 2017 в 13:47

Правильный путь не должен заканчиваться на «/», я ошибался, что вызвало проблему

Правильный путь:

http: //www.springframework .org / schema / context http://www.springframework.org/schema/context/spring-context.xsd

0
ответ дан techguy 19 August 2018 в 05:07
поделиться

, когда вы добавляете контекст: компонент-сканирование в первый раз в xml, необходимо добавить следующее:

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
1
ответ дан user2041844 19 August 2018 в 05:07
поделиться
4
ответ дан Community 30 October 2018 в 17:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: