Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Erlang application init, Загрузка вспомогательных модулей 
:(
    Опции темы
Valinur
Дата 7.8.2012, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 21.9.2007
Где: Москва

Репутация: нет
Всего: 6



Привет всем.

Написал небольшое Erlang-приложение. Для работы приложению нужно httpc, поэтому при инициализации я запускаю inets.
Код

init([]) ->
    %% some code 
    %% ...
    inets:start(),
    ssl:start(),
    io:format("~p starting~n", [?SERVER]),
    {ok, Table}.


Я считаю это неверным, и хочу чтобы inets и ssl запускались сами. Для этого прописал их в .app и убрал 2 строчки кода из init
Код

{application, status_server,
    [{description, "HTTP Status Server"},
        {vsn, "0.1"},
        {modules, [status_server_app, status_server_supervisor, status_server]},
        {registered, [status_server, status_server_supervisor]},
        {applications, [kernel, stdlib, inets, ssl]},
        {mod, {status_server_app, []}},
        {start_phases, []}
    ]}.

Код

init([]) ->
    %% some code 
    %% ...
    io:format("~p starting~n", [?SERVER]),
    {ok, Table}.


Но теперь при запуске приложения я получаю ошибку
Код

1> application:load(status_server), application:start(status_server). 
{error,{not_started,inets}}.

В документации по OTP написано, что в части applications прописываются всё, что должно подкгрузиться до старта самого приложения. Почему же я словил эту ошибку? Или я что-то не так делаю?
--------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ...
PM MAIL   Вверх
Бонифаций
Дата 11.8.2012, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: нет
Всего: 40



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

Если вы сделаете релиз, то там будет сгенерирован бут скрипт для запуска вашего приложения, и все dependent приложения будут запускаться автоматически. Если вы просто скомпилировали проект и запускаете его из erl, то забота о том, чтобы все нужные приложения были запущены возлагается на вас самих.

Добавлено через 5 минут и 26 секунд
и, кстати, application:start(status_server) сам, без вас сделает application:load.




--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Valinur
Дата 16.8.2012, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 102
Регистрация: 21.9.2007
Где: Москва

Репутация: нет
Всего: 6



Понял, спасибо smile Разобрался)
--------------------
Не бойтесь совершенства, Вы все равно его не достигнете (с) ...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума «Функциональные языки: общие вопросы»
Void
  • Пожалуйста, создавайте темы с содержательными названиями. Если у Вас вопрос по конкретному языку, укажите его в заголовке, например: «[Haskell] Как использовать монаду State».
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Функциональные языки: общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1156 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.