代码之家  ›  专栏  ›  技术社区  ›  Chris W

Cowboy Web服务器在将ibrowse依赖项添加到Makefile后启动时崩溃

  •  0
  • Chris W  · 技术社区  · 7 年前

    我目前正在Erlang开发一个服务器,使用Cowboy作为web服务器框架。在启动时,我需要能够进行服务器端HTTP调用以从其他web服务器获取文件,因此我包含了一个Makefile依赖项 ibrowse

    ibrowse文档没有特别提到作为牛仔依赖项添加的内容,而是提到了erlang。mk文档表明我只需要添加单行

    DEPS = ibrowse
    

    然而,当我添加这一行时,牛仔在启动时崩溃了

    =INFO REPORT==== 15-Feb-2018::14:51:13 ===
        application: geo_server
        exited: {bad_return,
                    {{geo_server_app,start,[normal,[]]},
                     {'EXIT',
                         {undef,
                             [{cowboy_router,compile,
                                  [[{'_',
                                        [{"/",default_handler,[]},
                                         {"/client_info",client_info_handler,[]},
                                         {"/search",request_handler,[]}]}]],
                                  []},
                              {geo_server_app,start,2,
                                  [{file,"src/geo_server_app.erl"},{line,8}]},
                              {application_master,start_it_old,4,
                                  [{file,"application_master.erl"},
                                   {line,273}]}]}}}}
        type: permanent
    {"Kernel pid terminated",application_controller,"{application_start_failure,geo_server,{bad_return,{{geo_server_app,start,[normal,[]]},{'EXIT',{undef,[{cowboy_router,compile,[[{'_',[{\"/\",default_handler,[]},{\"/client_info\",client_info_handler,[]},{\"/search\",request_handler,[]}]}]],[]},{geo_server_app,start,2,[{file,\"src/geo_server_app.erl\"},{line,8}]},{application_master,start_it_old,4,[{file,\"application_master.erl\"},{line,273}]}]}}}}}"}
    Kernel pid terminated (application_controller) ({application_start_failure,geo_server,{bad_return,{{geo_server_app,start,[normal,[]]},{'EXIT',{undef,[{cowboy_router,compile,[[{'_',[{"/",default_handle
    heart: Thu Feb 15 14:51:14 2018: Erlang is crashing .. (waiting for crash dump file)
    heart: Thu Feb 15 14:51:14 2018: Would reboot. Terminating.
    gmake: *** [erlang.mk:6639: run] Error 1
    

    摆脱这种依赖,牛仔就可以好好开始了。

    PROJECT = geo_server
    PROJECT_DESCRIPTION = Geographic information server
    PROJECT_VERSION = 0.1.0
    
    DEPS = cowboy
    dep_cowboy_commit = 2.2.2
    DEP_PLUGINS = cowboy
    
    include erlang.mk
    
    DEPS = ibrowse
    

    我是否把 DEPS = ibrowse 行之前或之后 include elrang.mk .


    在经过更多的磨蹭之后,这似乎是牛仔的缓存问题 make run 工艺工程。

    添加ibrowse似乎需要两次调用 进行跑步 . 如果我的代码崩溃了,在看到修改后的代码运行之前,我必须再次添加并删除ibrowse。

    谢谢

    克里斯·W

    2 回复  |  直到 7 年前
        1
  •  1
  •   Elvis Oric    7 年前

    来自erlang。mk公司 documentation

    DEPS此项目所依赖的应用程序列表 由Erlang获取。mk。

    解决方案: DEPS=牛仔ibrowse

        2
  •  0
  •   Chris W    7 年前

    DEP只需出现一次,并包含一个以空格分隔的依赖项列表