git - Heroku does not seem to run most recent version of deployed play application -
yesterday pushed update heroku application online version not seem execute recent code. specifically, new route added results in "action not found" error visible here , akka job schedule in global.onstart
not started. not writing log @ least.
my conf/routes
file contains line
get /json/matches controllers.feeddaemon.matches()
the corresponding controller exists , implements action
def matches = action { implicit request => ok(cache.get(keymatches) match { case some(o) => o.asinstanceof[string] case none => "" }) }
needless say, works locally. heroku build did not report errors , went through.
i'm using play 2.2.2. application contains git submodule , sbt multi project build. heroku detects git submodule though. if multi project problem, i'd expect build errors or classnotfoundexceptions
though.
the answer pretty simple. in versions before 2.2, play framework created startup script @ location target/start
heroku procfile have looked like
web: target/start -dhttp.port=$port $java_opts
this changed in play 2.2 , script @ location target/universal/stage/bin/foo
procfile should this
web: target/universal/stage/bin/foo -dhttp.port=$port $java_opts
this has been explained in so answer
in case, old application started because build output never cleaned, started old version after building new 1 instead of getting target/start
file not found error.
the heroku-repo plugin let me clear build cache, lead target/start
file not found error, let solution.
Comments
Post a Comment