2016-03-07 55 views
0

我碰到下面的错误,每当我运行本地部署春季启动的应用程序:“Heroku的本地Web”异常与Heroku的

.springframework.core.convert.ConversionFailedException:无法从类型[java.lang中的转换。 String]为值'$ PORT'键入[java.lang.Integer];嵌套的例外是java.lang.NumberFormatException:对于输入字符串: “$ PORT”

我Procfile看起来是这样的:

网站:JAVA -Dserver.port = $ PORT罐子建立/库/gs-spring-boot-0.1.0.jar

我能够部署到heroku,但我希望能够在本地运行以在远程部署之前验证部署。

我有一个windows PORT系统环境变量,并设置了一个Heroku配置变量'heroku config:set PORT = 8080'。我在上面的错误中单独设置了这些中的每一个都没有改变。任何人都知道我为什么这样做?

+0

我也试过 'Heroku的本地Web -p 8080' 和得到相同的异常。一种解决方法是用Procfile中的'8080'替换'$ PORT',但我宁愿不这样做,如果可能的话。 – broadbear

回答

1

在Windows上,您需要引用环境变量,如%PORT%而不是$表示法,它是* nix特定的。

为了解决这个问题,你应该创建一个Procfile.windows文件与这些内容:

web: java -Dserver.port=%PORT% -jar build\libs\gs-spring-boot-0.1.0.jar 

然后运行这个命令:

heroku local web -f Procfile.windows