讀取 Java Webapp 和 Java 普通應用程序中的通用外部屬性文件 (Read common external property file in Java Webapp and java normal app)


問題描述

讀取 Java Webapp 和 Java 普通應用程序中的通用外部屬性文件 (Read common external property file in Java Webapp and java normal app)

我知道這個問題已經回答了很多次,最有用的答案如下,

在基於 servlet 的應用程序中放置以及如何讀取配置資源文件?

但是,我們有一些特殊要求如下,

  1. Webapp 會被部署到 tomcat 中。
  2. 普通的 .jar 形式的 java 應用程序會放在文件夾 /myapp 下
  3. myappConfig.property 文件將放在 /myapp 下

客戶端機器上的目錄結構

/myapp
   /myapp.jar
   /assests/myappConfig.property
   /tomcat/webapps/myapp.war

基本上myapp .jarmyapp.war 將訪問 MySql 數據庫連接和數據庫操作的 sql db 連接值。

從 myapp.jar 訪問 myappConfig.property ‑‑> 工作正常

        File jarPath = new File(Myapp.class.getProtectionDomain().getCodeSource().getLocation().getPath());
        String propertiesPath = jarPath.getParent();
        System.out.println(" propertiesPath‑" + propertiesPath);
        mainProperties.load(new FileInputStream(propertiesPath + "\\assets\\myapp.property"));

任何人都可以幫助/建議如何實現,

從 mywebapp 訪問 myappConfig.property 文件,

如果 myappConfig.property 文件中的運行時更改不需要 myapp.war要重新部署

提前感謝您的幫助。

編輯

以下是我們的步驟想把項目交付給客戶。

  1. 下面是我的應用目錄

    /myapp
      /myapp.jar
      /assests/myappConfig.property
      /tomcat/webapps/myapp.war
    
  2. 使用一些打包工具將所有內容打包到一個包中。

  3. 在客戶端計算機的任意位置運行此包,它將具有與上述相同的目錄結構

  4. 在這裡,我不想在 webapp 或 tomcat 中為“/assests/myappConfig.property”硬編碼任何位置

  5. 我可以閱讀的普通 Java 應用程序屬性文件,但對於 wepapp,我不清楚如何做到這一點?

/li>
  • 普通的 Java 應用程序我可以讀取屬性文件,但對於 wepapp,我不清楚如何做到這一點?

  • /li>
  • 普通的 Java 應用程序我可以讀取屬性文件,但對於 wepapp,我不清楚如何做到這一點?


  • 參考解法

    方法 1:

    You can add a <context> to tomcat/conf/server.xml (in this example, linux path):

    <Context docBase="/home/yourusername/tomcat/assests" path="/assets" />
    

    If you are using Windows:

    <Context docBase="C:\path\to\myapp\assets" path="/assets" />
    

    And then you can access it like any other resource within your webapp (e.g.: /assets/myappConfig.property).

    If you are using JDBC for example, you could store the connection properties in a Singleton and request it from there, and that class could take care of change checks on that file.

    (by School BoyPeter)

    參考文件

    1. Read common external property file in Java Webapp and java normal app (CC BY‑SA 2.5/3.0/4.0)

    #java #properties-file #tomcat #web-applications






    相關問題

    電子郵件地址中帶有 + 字符的 Java 郵件 (Java mail with + character in email address)

    如何快速原型化 Java 代碼? (How to quickly prototype Java code?)

    如何使用 Maven 在目標(SVN-)服務器上創建 Javadoc? (How to create Javadoc on the target (SVN-) server using Maven?)

    為什麼檢查二叉樹有效性的解決方案不起作用? (Why the solution for checking the validity of binary tree is not working?)

    Selenium webdriver通過第一個數字找到texy (Selenium webdriver find texy by first digits)

    setOnClickListener 沒有在圖像視圖上被調用 (setOnClickListener is not getting called on image view)

    繪製多邊形:找不到錯誤 (Drawing Polygon : unable to find error)

    半透明 JButton:對像出現在背景中 (Semi-Transparent JButton: Objects appear in Background)

    比較同一數組的元素 (Compare elements of the same array)

    Java 屏幕截圖小程序 (Java screen capture applet)

    Minecraft 1.8.9 Forge Modding 的Java 開發工具包,需要什麼JDK/JRE,代碼是否正確? (Java Development Kit with Minecraft 1.8.9 Forge Modding, What JDK/JRE Is Needed, Is Code Correct?)

    java while (resultset.next()) 不返回同一列中的所有數據 (java while (resultset.next()) does not return all data in the same column)







    留言討論