Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
487 views
in Technique[技术] by (71.8m points)

playframework - Load file from '/conf' directory on Cloudbees

What we do :

We run Play2 application on Cloudbees and we load a file from '/conf' directory (inside the classpath of the application).

These 2 snippets work in local and at heroku

Play.application().getFile("conf/myfile.json")

and

new File("conf/myfile.json")

However, on Cloudbees, we get FileNotFoundException :

java.io.FileNotFoundException: /var/genapp/apps/..../conf/myfile.json (No such file or directory)

So how to load a file from classpath on Cloudbees?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Well, files in '/conf' are in the classpath and not on the filesystem so we need to load the file this way :

Play.application.resourceAsStream("myfile.json")
//.resource() also works - depends what we want

Note that we don't put "conf" in the path - files in there are on the classpath in the root.

Note that in production it comes from a jar/zip, not a file - so getFile is somewhat misleading in play.

Michael Neale from Cloudbees opened this issue : https://github.com/playframework/Play20/issues/1079

Cloudbees documentation has been updated : https://wiki.cloudbees.com/bin/view/RUN/Playframework#HLoadingconfigfilesinproduction


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...