簡體   English   中英

如何在jax-rs中使用屬性文件?

[英]How do I use a properties file with jax-rs?

我剛剛開始使用在Tomcat上運行的jax-rs來設置Web服務。 有沒有一種方法可以將屬性文件與我的Java項目捆綁在一起(在Eclipse中),以便我可以在運行時從中讀取屬性? 另外,如果可能的話,將其放置在最佳位置(以便無法通過url看到),WebContent,WEB-INF等在哪里?

謝謝。

幾種選擇:

選項1:可以將其放在類路徑下(在Eclipse中將其放在源文件夾下),因此可以通過類加載器訪問它: MyClass.class.getResourceAsStream("myproperties.properites")

請注意,MyClass也必須位於相同的源文件夾中(實際上有點復雜,它必須位於相同的類加載器層次結構中,但是同一文件夾中的任何類都可以完成此工作)

選項2:將其放在WEB-INF文件夾中。 這是首選方法,因為您不需要處理類路徑。 您將需要一個ServletContext來訪問它: javax.servlet.ServletContext.getResourceAsStream("WEB-INF/myproperties.properites")

在jax-rs中,您可以在任何已注冊資源或提供程序中使用@Context批注獲取ServletContext。

對於GlassFish 3.1用戶,我可以同時使用Tarlog的兩個選項,但必須使用文件的絕對路徑。 對於選項1,我將文件放在NetBeans的Source Packages文件夾中,然后可以通過以下方式訪問:

InputStream is = TestResource.class.getResourceAsStream("/test_model.js");

對於選項2,我將文件放在WEB-INF下並使用:

@Context ServletContext servletContext;
InputStream is = servletContext.getResourceAsStream("/WEB-INF/test_model.js");

沒有前斜杠,結果為空。 HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM