FileNotFoundException

cool-abdoul Messages postés 103 Statut Membre -  
cool-abdoul Messages postés 103 Statut Membre -
Bonjour,

code


public class Ex2JdbcDao {

public static void main (String [] args) {
// Create the application context
ApplicationContext ctx = (ApplicationContext)new ClassPathXmlApplicationContext(new String []{"springXMLConfig.xml"});

// Obtain a reference to our DAO

Ex2JdbcDao dao = (Ex2JdbcDao) ctx.getBean("dao");
String countryCode = "USA" ;
String daodao = dao.getClass().getName().toString();
// Find a few random cities in the US
//for(int i = 0; i < 4; ++i)
System.out.println ("A random city " + countryCode + " - " + daodao);
//System.out.print("A random city in %s is %s%n", countryCode, dao.getRandomCityByCountryCode(countryCode));

}

erreur :

INFO: Loading XML bean definitions from class path resource [springXMLConfig.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [springXMLConfig.xml]; nested exception is java.io.FileNotFoundException: class path resource [springXMLConfig.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:320)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:158)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:184)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:112)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:79)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:411)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:338)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:76)
at code.Ex2JdbcDao.main(Ex2JdbcDao.java:19)
Caused by: java.io.FileNotFoundException: class path resource [springXMLConfig.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:307)


Ne me demander pas s'il vous plaît le chemin d'accès au fichier car le problème n'est pas à ce niveau même s'il met un FileNotFoundException. J'ai bien chercher à ce niveau sans solution.

11 réponses

pacorabanix
 
oui mais le problème, c'est que ce genre de fonction ne renvoie de "FileNotFoundException" seulement si elle ne trouve pas le fichier...

Il faut bien vérifier les paramétrages du compilateur (quel est ce "class path" ? ) et de votre système. Peut-être ce fichier est sur le réseau et le compilateur n'y a pas accès. ça peut-être plein de truc mais d'une manière ou d'une autre votre programme ne trouve pas le fichier spécifié dans les répertoires où il cherche.
0
cool-abdoul Messages postés 103 Statut Membre 9
 
Excuse moi pacorabanix, je comprends ta réaction !!

Je te confirme que les 2 fichiers springXMLConfig.xml et Ex2JdbcDao.java sont dans le même répertoire.

c'est ça la bizarerie avec ce FileNotFoundException.


Rappelle : J'utlise la même syntaxe dans une autre application différente de celle-ci et ça marche !! Mais ici ça ne fonctionne pas et je ne comprends plus JAVA ! lol
0
cool-abdoul Messages postés 103 Statut Membre 9
 
Au secours !!!
0
cool-abdoul Messages postés 103 Statut Membre 9
 
Aidez moi SVP !!!
0
pacorabanix
 
essaye ta syntaxe qui fonctionne dans ce programme-là (Avec le fichier qui fonctionne).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Évidemment
 
Et si c'était une histoire de droits ? que l'utilisateur qui fait fonctionner le pgm n'ait aucun droit d'accès sur springXMLConfig.xml ?
0
cool-abdoul
 
Je comprends que cela soit très judicieux de penser à cela !! En fait le fichier springXMLConfig.xml , c'est un fichier que j'ai mis en place. Voici son contenu :


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans/" xmlns:aop="http://www.springframework.org/schema/aop/" xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans/ http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/aop/ http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx/ http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties" />


<util:map id="dbProps">
<entry key="jdbc.driverClassName" value="com.mysql.jdbc.Driver"/>
<entry key="jdbc.url" value="jdbc:mysql://localhost/formation_stagiare"/>
<entry key="jdbc.username" value="root"/>
<entry key="jdbc.password" value="root"/>
</util:map>


<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />


<!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
<bean class = "org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="properties" ref="dbProps"/>
</bean>

<bean id="dao" class="code.Ex2JdbcDao">
<property name="dataSource" ref="dataSource"/>
</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="viewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp"/>
</beans>
0
pacorabanix > cool-abdoul
 
quels sont *les droits et les permissions* de ton fichier? pas son contenu
0
Évidemment > cool-abdoul
 
dsl, je parlais pas de contenu mais de droits d'accès. Les droits d'accès et la propriété de ce fichier sont-ils rigoureusement les mêmes que pour le fichier voisin que tu citais tout à l'heure...
0
cool-abdoul > Évidemment
 
Je compreds bien la problematique du droit. Mais il ne se pose pas dans mon appli. Au fait, dans mon cas, c'est seulement l'accès à mysql qui nécessite un droit par un nom user "root" et un mot de passe "root".
0
Le concombre démasqué > cool-abdoul
 
oh ! tu travailles en 2009 sur une machine dépourvue de gestion de droits ?
0
cool-abdoul Messages postés 103 Statut Membre 9
 
OK !!! Admettons que je ne sache pas grand chose sur la question de droit d'accès à un fichier de config xml dont j'ai l'habitude de manipuler peut sans vraiment le maîtriser. C'est quoi alors cette question du droit ? Un exemple serait plus plosible pour compprendre ce que le droit d'accès !!

merci
0
Le concombre remarqué
 
re

En fait, c'est pas parce que tu vois et tu accèdes sans souci à ce fichier en particulier que c'est vrai pour tous les utilisateurs déclarés sur ton système.
Si l'erreur est FileNotFound, c'est que le process qui cherche à y accéder ne le voit pas. S'il existe (car tu le vois) et que lui ne le vois pas, c'est que la solution se trouve au niveau des droits d'accès ou de la propriété (au sens appartenance).
Et ce n'est pas parce que deux fichiers sont dans le même dossier qu'ils partagent les mêmes droits et propriété. C'est donc pour ces raisons qu'il t'est conseillé de vérifier les droits et/ou la propriété.

Une fois que tu as vérifié ce point là, on a deux possibilités :
1. les droits/propriété sont identiques entre les deux fichiers cité en exemple : tu viens de mettre le doigt sur un bug et il faut contacter java ou sun ou qui sais-je encore
2. les droits/propriété ne sont pas identiques : il convient alors de mettre les mêmes droit/propriété sur les 2 fichiers et refaire un test. S'il s'avère qu'avec les mêmes droits/propriété le bug disparaît, c'est que le pb se trouvait à ce niveau là.
0
cool-abdoul Messages postés 103 Statut Membre 9
 
J'apprécie bien ton analyse qui me semble bcp plus prof. Mais je n'ai jamais été confronté au pb de droits d'accès à un fichier depuis que je fais du développement en JAVA comme en PHP. Comment accéder au droit d'un fichier (pour supprimer par exemple ce droit) ?
Ce n'est pas un click droit sur le fichier ou alors il faut faire le parametrage ailleurs pour sauter ce droit ?
0
cool-abdoul Messages postés 103 Statut Membre 9
 
Je viens de vérifier tous les droits et je me rend compte que j'ai un droit total sur tous mes fichiers. C'est ce que je ne comprends pas !
0
Le concombre remarqué
 
re
si tu es sous unix/linux/mac : dans un shell, tu fais ls -l et tu verras les droits s'afficher ainsi que les propriétaires (user & group)
si tu es sous windows, un click droit puis propriétés puis Sécurité te permettra de voir les droits. La notion de propriétaire n'est pas très importante dans Windows, tu peux t'en passer. Si tu veux y jeter un coup d'œil, cliquer Avancé puis onglet propriétaire pour voir qui est le proprio actuel...
0
cool-abdoul Messages postés 103 Statut Membre 9
 
Je suis connecté à xp entant que administrateur et j'ai le droit sur tous mes fichiers et dossiers.
J'ai fais le tuto que tu viens de me donner. je me rend compte que j'ai un droit total sur tous mes fichiers. Je ne comprends pagne !
0