Как я использую Apache поставщика с самоскомпилированным Perl и mod_perl?

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

5
задан Chris Dolan 17 September 2008 в 02:59
поделиться

3 ответа

  1. Создайте свою версию Perl 5.10, следующего любым специальным инструкциям из mod_perl документации. Скажите конфигуратору Perl устанавливать в некотором нестандартном месте, как/usr/local/perl/5.10.0

  2. Используйте инструкции создать общую библиотеку (или динамичный, или .so) mod_perl против Apache Вашего распределения, но удостоверяться Вы выполняете Make-файл. МН использование Вашей версии жемчуга:

    /usr/local/perl/5.10.0/bin/perl Make-файл. МН APXS =/usr/bin/apxs

  3. Установите и настройте mod_perl как нормальный.

Это может быть полезно, после шага один, для изменения пути, таким образом, Вы accidentially не запутываетесь, о которой версии Perl Вы используете:

export PATH=/usr/local/perl/5.10.0/bin:$PATH
5
ответ дан 14 December 2019 в 09:05
поделиться

Вы захотите изучить mod_so

1
ответ дан 14 December 2019 в 09:05
поделиться

Я сделал это прежде. Это не было симпатично, но это работало, тем более, что perl's поставщика обычно 2-3 года.

Я запустил с создания моего собственного об/мин жемчуга, который установил жемчуг в другое местоположение, как /opt/. Это было довольно прямым. Я главным образом запустил с этого, потому что я не хотел системные утилиты, которые использовали жемчуг для повреждения, когда я обновил/установил новые модули. Я должен был изменить все свои сценарии для определения #!/opt/bin/perl наверху и иногда я даже играл с путем, чтобы удостовериться, что мой жемчуг был на первом месте.

Затем, я захватил mod_perl исходного об/мин и изменил его для использования моего /opt/bin/perl вместо /usr/bin/perl. У меня нет доступа к изменениям, которые я внес, так как это было на другом концерте. Мне потребовалось немного проигрывания вокруг для получения его.

Это работало, но я не мастер об/мин, таким образом, проверка зависимости не удалась так хорошо. Например, я мог удалить своего пользовательского об/мин и повредить все. Это не было грандиозное предприятие для меня, таким образом, я шел дальше.

Я также смешивал об/мин с установками CPAN модулей (я упоминал, что мы создали наше собственное зеркало CPAN с нашим собственным кодом?). Это было немного хрупко также. Снова, у меня не было ресурсов (т.е., время), чтобы выяснить, как изогнуть cpan2rpm, чтобы использовать мой жемчуг и не вызвать конфликты об/мин.

Если бы у меня было все это, чтобы сделать снова, то я сделал бы пользовательские 5,10 об/мин жемчуга и просто заменил бы системный жемчуг. Затем я использовал бы cpan2rpm для создания RPM-пакетов, мне было нужно для моего программного обеспечения, и скомпилируйте моего собственного mod_perl об/мин.

1
ответ дан 14 December 2019 в 09:05
поделиться
Другие вопросы по тегам:

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