【问题标题】:bad_application error starting erlang gen_server applicationbad_application 错误启动 erlang gen_server 应用程序
【发布时间】:2011-02-06 11:56:56
【问题描述】:

我使用 gen_server 编写了一个简单的 erlang 应用程序。

使用 application:start(myapp) 启动它时,我得到以下元组...

{error,{bad_application,{appliction,myapp ...(我的应用程序配置的其余部分)。

没有其他错误或警告消息。我还尝试搜索有关如何配置 gen_server 以及错误本身的示例。我很惊讶那里的信息如此之少。

我可以开始尝试调试 OTP 了吗?任何指针将不胜感激。

【问题讨论】:

  • 答案可能在配置的其余部分...
  • 是的,我同意这可能就是答案所在。但我如何了解更多信息?沿着“指定的无效模式”行出现错误??我很惊讶返回的上下文为零。

标签: erlang erlang-otp gen-server


【解决方案1】:

"Application" section of OTP Design Principles 中有很多关于如何实现 erlang 应用程序的信息。 听起来您正在尝试使用 gen_server 作为您正在启动的应用程序的回调。那是行不通的。

应用程序最常见的设置是有一个应用程序回调模块,该模块启动一个主管,该主管在某处有一个 gen_server 作为工作人员。应用程序根本不需要启动任何进程。应用程序的存在纯粹是为了将一些库模块加载到 vm 中,例如 stdlib 应用程序。这使得其他应用程序可以依赖库。

【讨论】:

  • 感谢克里斯蒂安的链接。实际上,我正在尝试按照以下文章启动股票标准 erlang 应用程序。我的最终目标是通过“端口”访问 python 代码。 trapexit.org/Writing_an_Erlang_Port_using_OTP_Principles 我一直到使用“应用程序:启动(应用程序名称)”启动应用程序。我想知道如何从这一点进行故障排除?
【解决方案2】:

我假设您的配置文件中有错误。您可以尝试做的一件事是

file:consult("<your-app-config-file>").

如果它返回一个错误,你就会知道这就是问题所在..

【讨论】:

  • 很好的建议 arun_suresh,最终这是我的配置文件“应用程序”中的一个错字。谢谢!
【解决方案3】:

您可能还想查看以下有关如何调试 Erlang 函数的教程:

http://aloiroberto.wordpress.com/2009/02/23/tracing-erlang-functions/

【讨论】:

  • 感谢罗伯托,这似乎是一个非常有用的想法。
猜你喜欢
  • 2011-06-18
  • 2019-07-17
  • 2010-11-24
  • 2011-08-17
  • 1970-01-01
  • 2011-03-04
  • 2021-08-19
  • 2014-12-05
  • 2012-10-11
相关资源
最近更新 更多