Vous devez être membre et vous identifier pour publier un article.
Les visiteurs peuvent toutefois commenter chaque article par une réponse.

JBoss Externaliser un fichier de propriétés

Astuces de l’Infobrol (Java)Article publié le 06/03/2007 14:26:49


Lorsque nous fournissons notre application sous forme d'un fichier à déployer (par exemple un WAR), nous devons parfois externaliser un fichier de propriétés.

Nous pouvons par exemple utiliser une classe comme celle-ci :

  1. public class JDBCPersistenceHelper {
  2.  
  3. /**
  4.   * Connection factory accessible to subclasses
  5.   */
  6. protected JDBCConnectionFactory factory;
  7.  
  8. /**
  9.   * Constructor reads database properties and gets
  10.   * connection factory.
  11.   */
  12. public JDBCPersistenceHelper() throws IOException, SQLException {
  13. Properties db = new Properties();
  14. sb.append(System.getProperty("jbossDataHome"));
  15. sb.append("/properties/database.properties");
  16. String propsFileLocation = sb.toString();
  17. db.load(new FileInputStream(propsFileLocation));
  18. factory = JDBCConnectionFactory.getConnectionFactory(db);
  19. }
  20.  
  21. }


et modifier le fichier de lancement de notre serveur JBoss :

  1. @echo off
  2. rem -------------------------------------------------------------------------
  3. rem JBoss Bootstrap Script for Win32
  4. rem -------------------------------------------------------------------------
  5.  
  6. rem $Id: run.bat 56327 2006-08-28 10:34:13Z dimitris@jboss.org $
  7.  
  8. @if not "%ECHO%" == "" echo %ECHO%
  9. @if "%OS%" == "Windows_NT" setlocal
  10.  
  11. set DIRNAME=.\
  12. if "%OS%" == "Windows_NT" set DIRNAME=%~dp0%
  13. set PROGNAME=run.bat
  14. if "%OS%" == "Windows_NT" set PROGNAME=%~nx0%
  15.  
  16. rem Read all command line arguments
  17.  
  18. REM
  19. REM The %ARGS% env variable commented out in favor of using %* to include
  20. REM all args in java command line. See bug #840239. [jpl]
  21. REM
  22. REM set ARGS=
  23. REM :loop
  24. REM if [%1] == [] goto endloop
  25. REM set ARGS=%ARGS% %1
  26. REM shift
  27. REM goto loop
  28. REM :endloop
  29.  
  30. rem Find run.jar, or we can't continue
  31.  
  32. set RUNJAR=%DIRNAME%\run.jar
  33. if exist "%RUNJAR%" goto FOUND_RUN_JAR
  34. echo Could not locate %RUNJAR%. Please check that you are in the
  35. echo bin directory when running this script.
  36. goto END
  37.  
  38. :FOUND_RUN_JAR
  39.  
  40. if not "%JAVA_HOME%" == "" goto ADD_TOOLS
  41.  
  42. set JAVA=java
  43.  
  44. echo JAVA_HOME is not set. Unexpected results may occur.
  45. echo Set JAVA_HOME to the directory of your local JDK to avoid this message.
  46. goto SKIP_TOOLS
  47.  
  48. :ADD_TOOLS
  49.  
  50. set JAVA=%JAVA_HOME%\bin\java
  51.  
  52. if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS
  53. echo Could not locate %JAVA_HOME%\lib\tools.jar. Unexpected results may occur.
  54. echo Make sure that JAVA_HOME points to a JDK and not a JRE.
  55.  
  56. :SKIP_TOOLS
  57.  
  58. rem Include the JDK javac compiler for JSP pages. The default is for a Sun JDK
  59. rem compatible distribution to which JAVA_HOME points
  60.  
  61. set JAVAC_JAR=%JAVA_HOME%\lib\tools.jar
  62.  
  63. rem If JBOSS_CLASSPATH is empty, don't include it, as this will
  64. rem result in including the local directory, which makes error tracking
  65. rem harder.
  66. if "%JBOSS_CLASSPATH%" == "" (
  67. set JBOSS_CLASSPATH=%JAVAC_JAR%;%RUNJAR%
  68. ) else (
  69. set JBOSS_CLASSPATH=%JBOSS_CLASSPATH%;%JAVAC_JAR%;%RUNJAR%
  70. )
  71.  
  72. rem Setup JBoss specific properties
  73. set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
  74. rem set JAVA_OPTS=%JAVA_OPTS% -Dwim.properties=D:\wim\JBOSS_properties\wim.properties
  75. set JAVA_OPTS=%JAVA_OPTS% -DjbossDataHome=D:\wim\JBOSS_properties
  76. set JBOSS_HOME=%DIRNAME%\..
  77.  
  78. rem Add -server to the JVM options, if supported
  79. "%JAVA%" -version 2›&1 | findstr /I hotspot › nul
  80. if not errorlevel == 1 (set JAVA_OPTS=%JAVA_OPTS% -server)
  81.  
  82. rem JVM memory allocation pool parameters. Modify as appropriate.
  83. set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m
  84.  
  85. rem With Sun JVMs reduce the RMI GCs to once per hour
  86. set JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
  87.  
  88. rem JPDA options. Uncomment and modify as appropriate to enable remote debugging.
  89. rem set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y %JAVA_OPTS%
  90.  
  91. rem Setup the java endorsed dirs
  92. set JBOSS_ENDORSED_DIRS=%JBOSS_HOME%\lib\endorsed
  93.  
  94. echo ===============================================================================
  95. echo JBoss Bootstrap Environment
  96. echo JBOSS_HOME: %JBOSS_HOME%
  97. echo JAVA: %JAVA%
  98. echo JAVA_OPTS: %JAVA_OPTS%
  99. echo CLASSPATH: %JBOSS_CLASSPATH%
  100. echo ===============================================================================
  101.  
  102. :RESTART
  103. "%JAVA%" %JAVA_OPTS% "-Djava.endorsed.dirs=%JBOSS_ENDORSED_DIRS%" -classpath "%JBOSS_CLASSPATH%" org.jboss.Main %*
  104. if ERRORLEVEL 10 goto RESTART
  105.  
  106. :END
  107. if "%NOPAUSE%" == "" pause
  108.  
  109. :END_NO_PAUSE


la ligne qui nous intéresse est la suivante :

  1. set JAVA_OPTS=%JAVA_OPTS% -DjbossDataHome=D:\wim\JBOSS_properties


Ce qui nous permet de définir la variable jbossDataHome que nous récupérons de la manière suivante

  1. System.getProperty("jbossDataHome")


Nous avons donc le répertoire dans lequel se trouve notre fichier de configuration.

Avatar :: Steph Un article de Steph

Source : 127.0.0.1 ;-)


Commenter l'article

Commentaires


06/03/2007 17:49:39 : /\/\/\/\/\/\/\/\

Mais qui revoilà ? ton bug avec les backslashes!

Dans ton mail le code est impec (mais pas coloré), et ici c'est le bousouf.

A titre d'exemple,



if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS



devient ceci

  1. if exist "%JAVA_HOME%\lib\tools.jar" goto SKIP_TOOLS



Donc j'en conclus que soit tu as restauré un mauvais backup, soit tu as de nouveau un problème avec ton parseur.

PS : la nuit c'est fait pour dormir et pas pour coder :-)


- Fred -

Sélection, tri et recherche d'articles
FILTRER :
TRIER :1er critère : 2e critère :
CHERCHER : Dans les titres Dans le contenu


[Afficher les liens en fonction des critères du formulaire ci-dessus]

English translation

You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.

If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.

Thank you in advance.

Document created the 13/09/2004, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/ast-rf-393.html

The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.