我在學習如何編寫Erlang Webmachine資源。一個資源會引發錯誤,但我無法追蹤它。崩潰報告中的錯誤消息沒有提供足夠的信息。調試Erlang Webmachine資源功能
有沒有辦法在Erlang shell中測試這些函數?
資源中的大部分功能都需要請求和上下文參數。但我不知道如何在瀏覽器中模擬這些參數。
下面的示例代碼。
感謝,
LRP
示例代碼:
我特別喜歡思考的功能:
content_types_provided(RD, Ctx) ->
Path = wrq:disp_path(RD),
{[{webmachine_util:guess_mime(Path), generate_body}],
RD, Ctx}.
但我目前的bug是在init函數。
這工作...
調度規則:
{["blip"], zzz_resource, []}.
初始化:
init([]) -> {ok, undefined}.
to_html(ReqData, State) ->
% {"<html><bodoy>Hello, new world</body></html>", ReqData, State}.
{test:test(), ReqData, State}.
但是,這將引發一個錯誤:
調度:
{["static"], static_resource,[]}.
初始化:
init(_) ->
DocRoot =
case init:get_argument(doc_root) of
{ok, [[DR]]} -> DR;
error -> "doc_root path error"
end,
{ok, #ctx{docroot=DocRoot}}.
=ERROR REPORT==== 4-Aug-2011::10:54:56 ===
webmachine error: path="/static"
{error,function_clause,
[{filename,join,[[]]},
{static_resource,resource_exists,2},
該錯誤似乎發生在static_resource:resource_exists:它的代碼是什麼? –