将 cowboy 升级到 cowboy2 时出错
Error coming while upgrading cowboy to cowboy2
我有 elixir 应用程序,我正在使用插件(没有 Phoenix),我试图将它从 cowboy 升级到 cowboy2。我正在使用 VS 代码进行开发,当我在 运行 服务器
时,我不断收到以下错误
** (Mix) Could not start application ok_api: exited in:
OkApi.start(:normal, [])
** (EXIT) an exception was raised:
** (FunctionClauseError) no function clause matching in :proplists.get_value/3
(stdlib) proplists.erl:215: :proplists.get_value(:num_acceptors, %{max_connections: 16384, num_acceptors: 100, socket_opts: [port: 4001]}, 10)
(ranch) /Users/ok/Documents/migration/ok_api/deps/ranch/src/ranch.erl:116: :ranch.child_spec/5
(plug_cowboy) lib/plug/cowboy.ex:183: Plug.Cowboy.child_spec/1
(ok_api) lib/ok_api.ex:92: OkApi.start/2
(kernel) application_master.erl:277: :application_master.start_it_old/4
这是我的children配置
children = [
Plug.Cowboy.child_spec(scheme: :http, plug: OkApi.Router, options: [port: 4001])
]
我的 mix.lock 文件中有这两个版本
"plug": {:hex, :plug, "1.7.1", "8516d565fb84a6a8b2ca722e74e2cd25ca0fc9d64f364ec9dbec09d33eb78ccd", [:mix], [{:mime, "~> 1.0", [hex: :mime, optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, optional: false]}]},
"plug_cowboy": {:hex, :plug_cowboy, "2.0.1", "d798f8ee5acc86b7d42dbe4450b8b0dadf665ce588236eb0a751a132417a980e", [:mix], [{:cowboy, "~> 2.5", [hex: :cowboy, optional: false]}, {:plug, "~> 1.7", [hex: :plug, optional: false]}]},
app 编译正常,但是 运行 只有这个错误。请帮忙
将 Cowboy 更新到版本 2 时,请确保您已明确更新 ranch
和 ranch_proxy_protocol
到现代版本。通常把行
{:ranch, "~> 1.7"}
进入 mix.exs
文件的 deps
部分可以解决问题。
我有 elixir 应用程序,我正在使用插件(没有 Phoenix),我试图将它从 cowboy 升级到 cowboy2。我正在使用 VS 代码进行开发,当我在 运行 服务器
时,我不断收到以下错误 ** (Mix) Could not start application ok_api: exited in:
OkApi.start(:normal, [])
** (EXIT) an exception was raised:
** (FunctionClauseError) no function clause matching in :proplists.get_value/3
(stdlib) proplists.erl:215: :proplists.get_value(:num_acceptors, %{max_connections: 16384, num_acceptors: 100, socket_opts: [port: 4001]}, 10)
(ranch) /Users/ok/Documents/migration/ok_api/deps/ranch/src/ranch.erl:116: :ranch.child_spec/5
(plug_cowboy) lib/plug/cowboy.ex:183: Plug.Cowboy.child_spec/1
(ok_api) lib/ok_api.ex:92: OkApi.start/2
(kernel) application_master.erl:277: :application_master.start_it_old/4
这是我的children配置
children = [
Plug.Cowboy.child_spec(scheme: :http, plug: OkApi.Router, options: [port: 4001])
]
我的 mix.lock 文件中有这两个版本
"plug": {:hex, :plug, "1.7.1", "8516d565fb84a6a8b2ca722e74e2cd25ca0fc9d64f364ec9dbec09d33eb78ccd", [:mix], [{:mime, "~> 1.0", [hex: :mime, optional: false]}, {:plug_crypto, "~> 1.0", [hex: :plug_crypto, optional: false]}]},
"plug_cowboy": {:hex, :plug_cowboy, "2.0.1", "d798f8ee5acc86b7d42dbe4450b8b0dadf665ce588236eb0a751a132417a980e", [:mix], [{:cowboy, "~> 2.5", [hex: :cowboy, optional: false]}, {:plug, "~> 1.7", [hex: :plug, optional: false]}]},
app 编译正常,但是 运行 只有这个错误。请帮忙
将 Cowboy 更新到版本 2 时,请确保您已明确更新 ranch
和 ranch_proxy_protocol
到现代版本。通常把行
{:ranch, "~> 1.7"}
进入 mix.exs
文件的 deps
部分可以解决问题。