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