Какой файл Tomcat 5 контекста имеет приоритет?

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

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

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 ");
        }
    }
}
18
задан Brian Tompsett - 汤莱恩 31 May 2015 в 12:22
поделиться

3 ответа

Для файлов Вы перечислили, простой ответ, принимающий Вас, используют все значения по умолчанию, порядок (отметьте conf/Catalina/localhost):

...tomcat/conf/context.xml
...tomcat/conf/Catalina/localhost/myapp.xml
...tomcat/webapps/myapp/META-INF/context.xml

я основываю это (и следующее обсуждение) на документация чиновника Tomcat 5.5 для Контейнер Контекста .

Поэтому, если это - простой ответ, каков полный ответ?

Tomcat 5.5. посмотрит в нескольких других местах для <Context> элементы вне тех, которых Вы перечислили (см. официальные документы).

Эти META-INF/context.xml никогда не будет открываться, если Tomcat найдет Catalina/localhost/myapp.xml. Таким образом, если у Вас на самом деле есть все файлы выше, его более корректное для высказывания эти META-INF/context.xml не важно , не, что это - самый низкий приоритет.

, Если Вы говорите <Context override="true" ...> в Вашем Catalina/localhost/myapp.xml, который сделает его самым высоким приоритет, независимо от conf/context.xml. То же самое в Вашем META-INF\context.xml, пока Вы не имеете Catalina/localhost/myapp.xml (см. предыдущий абзац).

кроме того, /Catalina/localhost/ часть пути в файлах выше на самом деле выходит из "значения по умолчанию" conf/server.xml и соответствует <Engine name="Catalina" defaultHost="localhost">. Если Ваш server.xml использование различные значения для [1 114] и defaultHost в эти <Engine>, это - структура dir, где Tomcat посмотрит.

Наконец, для ...tomcat\ часть файлов, которые Вы перечислили, Tomcat, использует dir от $CATALINA_BASE переменная среды. Если это не установлено, то это использует dir от $CATALINA_HOME переменная среды, которая является каталогом установки Tomcat. Мне нравится устанавливать и использовать $CATALINA_BASE так, чтобы я не "загрязнял" свою установку Tomcat.

33
ответ дан 30 November 2019 в 07:39
поделиться

Мое понимание:

  • tomcat/conf/context.xml является context.xml "по умолчанию", содержание которого является overlayed с определениями контекста веб-приложения. Мой context.xml значения по умолчанию TC 5 почти ничего не имеет в нем кроме списка web.xml как наблюдаемый ресурс, который поддерживает это понятие.
  • tomcat/Catalina//.xml используется для веб-приложения. Или это - место здесь вручную или взято от Вашего веб-приложения во время развертывания ..., таким образом, это - настоящее ведущее устройство, которое использует TC. Если Вы редактируете, это изменяется, будет считан, затем запускаются.
  • tomcat/webapps/myapp/META-INF/context.xml - это копируется в tomcat/Catalina/на начальное развертывание при изменении этого после начального развертывания я не думаю, что это имеет любой эффект
1
ответ дан 30 November 2019 в 07:39
поделиться

Я не нашел официальной документации, но я наблюдал порядок загрузки быть:

1 tomcat_home/conf/context.xml
2 tomcat_home/webapps/myapp/META-INF/context.xml

, Где № 2 является последним примененным (таким образом, его настройки переопределяют все предыдущие, где применимый).

я никогда не использовал веб-приложение, названное файлами контекста (Ваша опция № 2).

0
ответ дан 30 November 2019 в 07:39
поделиться
Другие вопросы по тегам:

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