Ecriture en Fichier depuis un servlet

Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
- - Dernière réponse : ObiWanKennedy
Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
- 2 avril 2006 à 18:15
Bonjour, j'ai un problème avec un servlet.
Ma classe servlet appelle une classe Parser qui parse un fichier .IFC (fichier d'architecture de batiments)
ensuite quand le "parsage" est fini ma classe Servlet transmet un bufferwriter sur un fichier pour que la classe parser puisse ecrire dans un fichier xml la liste des points et tt ça, necessaire à mon affichage. Le probleme, c'est que les differentes méthodes qui sont sencé ecrire le xml ne font rien et je ne comprends pas. Ces classes fonctionnent sous une application java classique
où la classe IHM donne le nom de l'ifc et le parser parse et me donne un XML rempli. Aucune Exception n'est lancée apparament.
je ne comprends pas du tout.
Afficher la suite 

2 réponses

Messages postés
86
Date d'inscription
vendredi 7 mai 2004
Statut
Membre
Dernière intervention
3 septembre 2008
3
0
Merci
peut etre un probleme de chemin. Par default si tu ecris un fichier
avec un chemin relatif avec tomcat sous windows par exemple, il ne
l'ecrit pas dans le context, mais a un autre endroit sur le disque dur.
Essai de faire une recherche sur le nom du fichier que tu ecris voir
s'il ne la pas fourré au fin fond de ton pc....
Commenter la réponse de cs_mep
Messages postés
60
Date d'inscription
lundi 17 février 2003
Statut
Membre
Dernière intervention
29 octobre 2010
1
0
Merci
Apres vérification enfaite il se trouve que il lit bien le fichier. Mais quand il fait l'analyse des lignes il trouve rien d'interessants.
alors que ce code marche tres bien avec l'application java classique alors j'ai une hypothèse (un peu capilotracté) enfin tiré par les cheveux
il est possible que le servlet soit découpe en thread par la machine java et que le thread qui renvoi le booléen qui dit si oui ou non la ligne est interessante est trop long pour répondre donc il passe. Et au final ben rien ne se fait.

voila le code

if (point.IFCOBJECT(ligne))
hCartesianPoint.put(new Integer(point.id()),point);

else if (wall.IFCOBJECT(ligne))
hWall.put(new Integer(wall.id()),wall);

else if (localPlacement.IFCOBJECT(ligne))
hLocalPlacement.put(new Integer(localPlacement.id()),localPlacement);

else if (axis2Placement3D.IFCOBJECT(ligne))
hAxis2Placement3D.put(new Integer(axis2Placement3D.id()),axis2Placement3D);

else if (direction.IFCOBJECT(ligne))
hDirection.put(new Integer(direction.id()),direction);

else if (productDefinitionShape.IFCOBJECT(ligne))
hProductDefinitionShape.put(new Integer(productDefinitionShape.id()), productDefinitionShape);

else if (shapeRepresentation.IFCOBJECT(ligne))
hShapeRepresentation.put(new Integer(shapeRepresentation.id()),shapeRepresentation);

else if (attDrivenExtrudedSolid.IFCOBJECT(ligne))
hAttDrivenExtrudedSolid.put(new Integer(attDrivenExtrudedSolid.id()), attDrivenExtrudedSolid);

else if (attDrivenExtrudedSegment.IFCOBJECT(ligne))
hAttDrivenExtrudedSegment.put(new Integer(attDrivenExtrudedSegment.id()), attDrivenExtrudedSegment);

else if (rectangleProfileDef.IFCOBJECT(ligne))
hProfileDef.put(new Integer(rectangleProfileDef.id()), rectangleProfileDef);

else if (project.IFCOBJECT(ligne))
hProject.put(new Integer(project.id()), project);

else if (site.IFCOBJECT(ligne))
hSite.put(new Integer(site.id()), site);

else if (building.IFCOBJECT(ligne))
hBuilding.put(new Integer(building.id()), building);

else if (buildingStorey.IFCOBJECT(ligne))
hBuildingStorey.put(new Integer(buildingStorey.id()), buildingStorey);

else if (relContains.IFCOBJECT(ligne))
hRelContains.put(new Integer(relContains.id()), relContains);

else if (space.IFCOBJECT(ligne))
hSpace.put(new Integer(space.id()), space);

else if (arbitraryProfileDef.IFCOBJECT(ligne))
hProfileDef.put(new Integer(arbitraryProfileDef.id()), arbitraryProfileDef);

else if (polyLine.IFCOBJECT(ligne))
hPolyLine.put(new Integer(polyLine.id()), polyLine);

else
System.out.println(ligne + " n'est pas traitee");

donc c'est une série de if bete et mechant je pense que la fonction IFCOBJECT de chaque élément est trop longue a répondre car j'ai déja eu une erreur "out of synch"
alors bon peut etre que mon hypothèse est impossible (je ne connais pas assez bien les mécanisme interne de la machine java)
dans mon fichier log de tomcat j'ai toute les lignes de mon IFC qui sont présente
mais je le repete ce code marche tres bien avec une application java classique.
Commenter la réponse de ObiWanKennedy