Zczytanie properties z wara

Odpowiedz Nowy wątek
2011-09-14 20:15
0

Witam
używając plugina mavena do budowy wara dodałem sobie katalog w którym mam zwykłe pliki properties

 <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>

               <webResources>
                <resource>
                  <!-- this is relative to the pom.xml directory -->
                  <directory>src/main/java/project/demo/config</directory>
                </resource>
              </webResources>

               <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>

         </plugin>

Teraz mam pytanko jak w kodzie zczytać te properties ??
potrzebuje coś takiego :

Properties prop = new Properties();

BufferedReader reader = new BufferedReader();?????
prop.load(reader);

I Właśnie się zastanawiam ponieważ funkcja Properties.load() potrzebuje jako argumentu obiektu Reader tylko jak się odnieść do tego pliku properties z wara ?

(jak przeglądam plik war to mam tam dodany ten pllik properties )

edytowany 2x, ostatnio: lukasw44, 2011-09-14 20:19

Pozostało 580 znaków

2011-09-16 02:26
ws
0

Na poczatek proponowalbym ustawic katalog docelowy "WEB-INF". Pliki w tym katalogu sa dostepne dla serwera, ale niewidoczne dla klientow (w przeciwienstwie do katalogu glownego WAR'a).

    //...    
    <webResources>
        <resource>
        <directory>src/main/java/project/demo/config</directory>
        <targetPath>WEB-INF</targetPath>
    //...

Teraz wystarczy uzyc kontekst serwletu:

    //...
    Properties p = new Properties();
    p.load(getServletContext().getResourceAsStream("/WEB-INF/some.properties"));
    //...

Pozostało 580 znaków

2011-09-16 11:52
0

Dziękuję serdecznie o to mi dokładnie chodziło.

Z warem sobie poradzilem teraz muszę to samo zrobić z jarem czyli zwykły projekt mavena dodałem i w pom:

   <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.2</version>
          <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>

             <includes>
                <include>/src/main/java/common/common/i18n</include>
             </includes>

            </configuration>
          </execution>
        </executions>

      </plugin>
    </plugins>
  </build>

Ale nie wiem czemu nie chce działać potrzebuje dodać tak jak przedtem do jara w katalogu classess zwykły plik tekstowy :/
niestety nie wiem dlaczego to nie działa jak usune linie <include>/src/main/java/common/common/i18n</include> to wtedy mam katalog classess w jarze ....

edytowany 4x, ostatnio: lukasw44, 2011-09-17 02:42

Pozostało 580 znaków

2011-09-18 12:06
0

Witam doszukałem się postu : http://4programmers.net/Forum[...]oby_do_generowanego_pliku_jar

i utworzyłem sobie w pom.xml :

  <build>
        <plugins>
            <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>assembly</goal>
                            </goals>
                            <configuration>

                                <descriptors>
                                    <descriptor>release.xml</descriptor>
                                </descriptors>
                           <!--   <archive>
                                    <manifest>
                                        <mainClass>tutaj main klasa jak jest potrzebna</mainClass>
                                    </manifest>
                                </archive>  -->
                                <finalName>${project.artifactId}</finalName>
                            </configuration>

                        </execution>
                    </executions>
                </plugin>
        </plugins>
    </build>

oraz release.xml:


<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.0 http://maven.apache.org/xsd/assembly-1.1.0.xsd">

    <id>1.0</id>
    <formats>
        <format>jar</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>

    <dependencySets>
        <dependencySet>
            <unpack>true</unpack>
            <scope>compile</scope>
        </dependencySet>
    </dependencySets>
     <fileSets>
        <fileSet>
            <directory>src/main/java/common/common/i18n/</directory>
            <outputDirectory>common/common/i18n/</outputDirectory>
        </fileSet>
     </fileSets>  
</assembly>

i ok wszystko w i18n jest dołączone tam gdzie chcę tylko że w jarze oprucz katalogu META-INF oraz common mam jeszcze inne skompilowane i dołączone katalogi z dependencies czyli jak otwieram plik common1.0.jar to mam także katalog VAADIN,
org , javax... czyli załączone rzeczy z dependencies ...
a potrzebuje tam tylko META-INF oraz common czyli tak jak jest przy standardowym kompilowaniu

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0