IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

Chargement d'une DTD à partir de springs-bean.jar pour le fichier config Spring.


Sujet :

Spring Web Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Chargement d'une DTD à partir de springs-bean.jar pour le fichier config Spring.
    Bonjour.

    Je me permet de poster cette question n'ayant pas trouvé la réponse dans les forums via l'outil de recherche.

    Je cherche à charger à partir de springs-bean.jar le fichier DTD de validation du xml de config Spring sans accès réseau ni copie en local de la DTD.
    La machine devant faire fonctionner le programme n'ayant pas d'accès WEB.
    Il s'agit d'un JAR exécutable de type Batch (traitement de fichiers automatique).

    Mais dans mon cas j'obtiens une erreur assez étrange, qui se produit -à priori- avec une certaine configuration de JAR.

    Je précise qu'il ne s'agit pas d'un FileNotFoundException, mais bel et bien d'une URL introuvable car connexion réseau impossible.

    L'url en question : "http://www.springframework.org/dtd/spring-beans.dtd" semble inaccessible.

    Si je copie la DTD en local sur le FileSystem, et la référence en tant que tel dans applicationContext.xml, je n'ai plus d'erreur (mais ce n'est pas une solution viable).

    La DTD est bien présente dans les JAR référencés par le Manifest.mf du JAR exécutable.

    J'en suis arrivé à cette configuration de JAR (voir plus bas) car je doit faire fonctionner cette application Java dans une cible JRE1.3.

    J'utilise Maven pour créer le fameux jar exécutable.

    +++++++++++++++++++
    + L'erreur en question : +
    +++++++++++++++++++
    *****************************************
    Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStore
    Exception: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.net.ConnectException: Connection refused: connect
    java.net.ConnectException: Connection refused: connect
    (...)
    ******************************************
    +++++++++++++++++++++++++++++++++++++++++
    + Le fichier de config Spring : applicationContext.xml +
    +++++++++++++++++++++++++++++++++++++++++

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    	  "http://www.springframework.org/dtd/spring-beans.dtd">	
    <beans>
        (...)
    </beans>

    +++++++++++++++++++++++++++++++++
    + Le chargement de applicationContext.xml +
    +++++++++++++++++++++++++++++++++
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (...)
    private XmlBeanFactory factory;
    ClassPathResource res = new ClassPathResource("/applicationContext.xml" );
    factory = new XmlBeanFactory(res);
    (...)
    +++++++++++++++++++++
    + Le contenu du pom.xml : +
    +++++++++++++++++++++

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>CSA</groupId>
      <artifactId>CSA</artifactId>
      <version>1.0</version>
      <build>
        <resources>
    (...)
        </resources>
        <plugins>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
              <archive>
                <manifest>
                  <mainClass>com.europcar.csa.PoliceFileRun</mainClass>
                  <addClasspath>true</addClasspath>
                  <classpathPrefix>lib/</classpathPrefix>
                </manifest>
                <manifestEntries>
    				<Class-Path>. files/ files/xml/ files/xsd/</Class-Path>
    			</manifestEntries>
              </archive>
              <outputDirectory>${project.build.directory}/CSA/${env}</outputDirectory>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-dependencies</id>
                <phase>compile</phase>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                  <outputDirectory>${project.build.directory}/CSA/${env}/lib</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <phase>generate-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <tasks>
                  	<!-- Build directories of target environment -->
                    <mkdir dir="${project.build.directory}/CSA/${env}/log"/>
                    <mkdir dir="${project.build.directory}/CSA/${env}/err"/>
                  </tasks>
                </configuration>
              </execution>
            </executions>
          </plugin>      
        </plugins>
      </build>
      <dependencies>
    		<dependency>
    			<groupId>com.lowagie</groupId>
    			<artifactId>itext</artifactId>
    			<version>1.4.8</version>
    		</dependency>
    		<dependency>
    			<groupId>commons-beanutils</groupId>
    			<artifactId>commons-beanutils</artifactId>
    			<version>1.0</version>
    		</dependency>
    		<dependency>
    			<groupId>commons-logging</groupId>
    			<artifactId>commons-logging</artifactId>
    			<version>1.1</version>
    		</dependency>
    		<dependency>
          		<groupId>log4j</groupId>
          		<artifactId>log4j</artifactId>
          		<version>1.2.14</version>
        	</dependency>
         	<dependency>
          		<groupId>oracle</groupId>
          		<artifactId>ojdbc12</artifactId>
          		<version>12</version>   
        	</dependency>       			
    		<dependency>
    			<groupId>xml-apis</groupId>
    			<artifactId>xml-apis</artifactId>
    			<version>2.0.0</version>
    		</dependency>
    		<dependency>
        		<groupId>javax.xml.parsers</groupId>
        		<artifactId>jaxp-api</artifactId>
        		<version>1.4</version>
    		</dependency> 		
    		<dependency>
    			<groupId>xerces</groupId>
    			<artifactId>xercesImpl</artifactId>
    			<version>2.0.0</version>
    		</dependency>
    		<dependency>
    			<groupId>xalan</groupId>
    			<artifactId>xalan</artifactId>
    			<version>2.1.0</version>
    		</dependency>
    		<dependency>
    			<groupId>springframework</groupId>
    			<artifactId>spring</artifactId>
    			<version>1.2.1</version>
    		</dependency>
    		<dependency>
    			<groupId>org.apache.cocoon</groupId>
    			<artifactId>cocoon-xml-resolver</artifactId>
    			<version>1.0.0</version>
    		</dependency>
    		<dependency>
    			<groupId>cocoon</groupId>
    			<artifactId>cocoon-serializers</artifactId>
    			<version>2.1.11</version>
    		</dependency>
    	</dependencies>
    </project>

  2. #2
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut terrible
    Bon ben...
    Comme d'hab j'ai posé une question trop compliquée pour le net.
    Allez lançons au moins un Troll histoire de dire que la BD qui régie ce forum sert à quelquechose :
    J'ai utilisé Windows pour compiler ce package, p'tet que c'est parce que l'OS n'est pas libre que ça ne marche pas qu'en pensez vous

  3. #3
    Membre averti Avatar de nicocsgamer
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 321
    Points : 342
    Points
    342
    Par défaut
    BeansDtdResolver

    ps : je viens de passer 20 mins à chercher alors au lieu de troller et de remplire la BD pour rien met toi devant google, il a reponse à presque tout.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 9
    Points : 33
    Points
    33
    Par défaut
    @piark

    J'ai rencontré le même problème que toi avec une application java qui tourne sur une machine offline.
    J'ai trouvé solution moins sale que de passer la DTD à la main à ton environnement en remplaçant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    	  "http://www.springframework.org/dtd/spring-beans.dtd">
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    	  "http://www.springframework.org/dtd spring-beans.dtd">
    Et ça suffit pour que tout fonctionne dans mon cas...

    Pourquoi? J'imagine qu'en fait l'URI prise telle quelle ne peut pas être résolue puisqu'on est offline, alors je me suis inspiré du contenu des balises de références aux schemas XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsi:schemaLocation="http://undomaine/path_vers_ mon_schema mon_schema.xsd"
    Ici le path vers le schema et son nom sont séparés par un espace, j'en ai déduit (peut-être à tort) que si la résolution vers le web échouait, il restait au moins la possibilité au parseur XML de se retourner vers le classPath de l'application courante pour trouver le schema par son nom de fichier. Bizzarement, c'est la parti "-//SPRING//DTD BEAN//EN" du doctype qui devrait tenir ce rôle, mais je ne sais pas encore pourquoi ça ne marche pas dans tous les cas.

    Ce raisonnement appliqué à l'URI de la DTD fonctionne à mon sens parce que le parseur trouve la DTD dans son classPath puisque celui-ci inclue forcément spring.jar.

    Je cherche encore une solution moins "manuelle", mais celle-ci a l'avantage (outre de fonctionner) de ne pas avoir à apporter la DTD dans l'environnement.

    J'attend un retour de ta part pour savoir si ça fonctionne aussi pour toi, et qu'on puisse trouver une meilleur solution à notre problème commun !

Discussions similaires

  1. Réponses: 13
    Dernier message: 08/10/2010, 13h16
  2. chargement d'une image à partir de la BD
    Par bambino11 dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 07/01/2009, 09h25
  3. [odbc] Chargement d'une base à partir d'excel
    Par Zeusviper dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/03/2008, 15h06
  4. Chargement d'une table à partir d'un fichier texte
    Par Trebor_ dans le forum Débuter
    Réponses: 2
    Dernier message: 21/02/2008, 14h31
  5. Réponses: 1
    Dernier message: 14/10/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo