如何配置Play使用Heroku时不要在jpda端口上监听?

时间:2011-11-29 04:00:17

标签: heroku playframework

尝试在Heroku上启动我的游戏应用程序时出现此错误:

heroku[web.1]: Error R11 (Bad bind) -> Process bound to port 8000, should be 46275 (see environment variable PORT)

我认为这是试图收听Heroku禁止的jpda端口。我的Procfile如下所示:

web:    play run --http.port=$PORT $PLAY_OPTS

heroku配置中的我的PLAY_OPTS如下所示:

PLAY_OPTS           => --%prod -Dprecompiled=true

在我的application.conf中,模式设置如下:

application.mode=dev

我需要做些什么来部署它?我是否需要以某种方式禁用jpda端口,或将模式设置为其他?

2 个答案:

答案 0 :(得分:2)

在application.conf文件中,您需要一行来定义prod模式

%prod.application.mode=prod

尝试本地运行play run - %prod以确保在此模式下不打开jpda端口。

答案 1 :(得分:0)

dev模式下看起来不是很好的方法。在play-1.2.3/framework/pym/play/application.py中,您可以看到它始终在dev模式下启动调试内容:

    if self.readConf('application.mode') == 'dev':
        if not self.play_env["disable_check_jpda"]: self.check_jpda()
        java_args.append('-Xdebug')
        java_args.append('-Xrunjdwp:transport=dt_socket,address=%s,server=y,suspend=n' % self.jpda_port)
        java_args.append('-Dplay.debug=yes')