Ich habe mehrere Stunden damit verbracht, dieses Problem mithilfe der Yaws-Dokumentation und Websuchen zu beheben. Die vorhandenen Threads hier haben mir nicht geholfen.Wie starte ich das Gieren im Embedded-Modus?
Ich bin neu zu Erlang und ich versuche, Gieren im Embedded-Modus mit dem Beispielcode http://yaws.hyber.org/embed.yaws. Ich vermisse etwas, weil ich es nicht zur Arbeit bringen kann. Ich habe vier Dateien:
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()}.
Als ich es (erfolgreich) zusammenstellen und versuchen, die Anwendung zu starten, ich einen Rückgabewert erhalten:
{error,{not_loaded,yaws}}
Wenn ich versuche, die kompilierte ybed.erl zu laufen, ybed: run(), erhalte ich:
Wenn ich giere vor dem Start der Anwendung, es funktioniert immer noch nicht.
Ich versuche nicht, Releases noch zu erstellen, nur kompilieren und testen im integrierten Modus. Kann mir jemand sagen, was ich vermisse?
Vielen Dank im Voraus
Danke! Es sind die kleinen Dinge für Noobs wie mich, wie alle Strahlengänge in die VM- oder Anwendungskonfiguration einzuschließen. Das hat mein Problem gelöst. – Will