Я провел несколько часов, пытаясь устранить эту проблему, используя документацию по рысканиям и поиск в Интернете. Существующие темы здесь мне не помогли.Как запустить рыскание во встроенный режим?
Я новичок в erlang, и я пытаюсь запустить рыскания во встроенном режиме, используя пример кода, приведенный на http://yaws.hyber.org/embed.yaws. Мне что-то не хватает, потому что я не могу заставить его работать. У меня есть четыре файла:
ybed.app
{application, ybed_app,
[
{description, "Yaws Embedded Application Test"},
{vsn, "0.1.0"},
{registered, []},
{applications, [kernel, stdlib, yaws]},
{mod, {ybed_app, []}},
{env, []}
]}.
ybed_app.erl
-module(ybed_app).
-behaviour(application).
%% Application callbacks
-export([start/2,
stop/1]).
start(_StartType, _StartArgs) ->
case ybed_sup:start_link() of
{ok, Pid} ->
{ok, Pid};
Other ->
{error, Other}
end.
stop(_State) ->
ok.
ybed_sup.erl
-module(ybed_sup).
-behaviour(supervisor).
%% API
-export([start_link/0]).
%% Supervisor callbacks
-export([init/1]).
start_link() ->
supervisor:start_link({local, ?MODULE}, ?MODULE, []).
init([]) ->
YBed = {ybed, {ybed,start,[]},
permanent,2000,worker,[ybed]},
{ok,{{one_for_all,0,1}, [YBed]}}.
ybed.erl
-module(ybed).
-compile(export_all).
start() ->
{ok, spawn(?MODULE, run, [])}.
run() ->
Id = "embedded",
GconfList = [{id, Id}],
Docroot = "/tmp",
SconfList = [{port, 8000},
{servername, "foobar"},
{listen, {127,0,0,1}},
{docroot, Docroot}],
{ok, SCList, GC, ChildSpecs} =
yaws_api:embedded_start_conf(Docroot, SconfList, GconfList, Id),
[supervisor:start_child(ybed_sup, Ch) || Ch <- ChildSpecs],
yaws_api:setconf(GC, SCList),
{ok, self()}.
Когда я скомпилировать его (успешно) и попробуйте запустить приложение, я получаю возвращаемое значение:
{error,{not_loaded,yaws}}
Когда я пытаюсь запустить скомпилированный ybed.erl, ybed: бег(), я получаю:
** exception error: undefined function yaws_api:embedded_start_conf/4
in function ybed:run/0 (src/ybed.erl, line 16)
Если я начинаю рытью перед тем, как запускать приложение, оно все равно не работает.
Я еще не пытаюсь создавать релизы, просто компилируйте и проверяйте рыскания во встроенном режиме. Может ли кто-нибудь сказать мне, что мне не хватает?
Заранее спасибо
Спасибо! Это мелочи для таких нубов, как я, включая включение всех пучков лучей в конфигурацию виртуальной машины или приложения. Это решило мою проблему. – Will