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>
Partager