Bonjour,
J ai ecris une methode run dans un thread qui compare le nom de 2 fichiers ( chercher ceux qui sont les mêmes) : un .tif et un .xml pour ca je change les 3 derniers caracteres tif par xml et puis je compare.Le but c est quand ils sont les mêmes je j'utilise (JDOM) pour chercher le number du fichier xml pour le loader.
lors de la compilation tout se passe bien , je compile avec cette commande :
javac -classpath /opt/ptc/windchill/codebase:/opt/java1.4/lib/jdom.jar sgGenPrintBatch.java > compil.txt
mais lors de l excecution ca bloque avec une exception , et le programme ne fait pas le run , voilà la commande d execution et le retour que j ai :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| $ windchill ext.sogerma.genprintbatch.Test "M523P578100100"
Numero de l'article : wt.part.WTPart:74070848
--> getCAT( Assembly M523P578100100 - COVER FR58-FR59 RH ASSY A )
<-- getCAT( Assembly M523P578100100 - COVER FR58-FR59 RH ASSY A ) = [Assembly M523P578100100 - M523P578100100.CATProduct A]
Tableau des EPMDocuments : [Lwt.epm.EPMDocument;@19e215b
Number:M523P5781-01
Version:A
DRAWING:M523P5781-01A
file_xml:/PDMLinkShare/pdmdevXmlFiles/M523P5781-01A.xml
file_tif:\\Aldebaran\pdmlinkshare\pdmdevTifFiles\M523P5781-01A.tif
file_catdrawing:\\Aldebaran\pdmlinkshare\pdmdevGenTif\M523P5781-01.CATDrawing
fichier :/PDMLinkShare/pdmdevXmlFiles/M523P5781-01A.xml
<<----Fin Fichier xml generation Tif ---->> wt.epm.EPMDocument:66051358
Number:M523P5781-01
Version:A
le 2eme fichier XML est :/PDMLinkShare/pdmdevXmlFiles2/M523P5781-01A.xml
-- Enregistrement du fichier XML dans : /PDMLinkShare/pdmdevXmlFiles2/M523P5781-01A.xml --
<<----Fin Fichier xml integration Tif---->> wt.part.WTPart:74070848wt.epm.EPMDocument:66051358
Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom/JDOMException
at ext.sogerma.genprintbatch.Test.main(sgGenPrintBatch.java:574) |
je vous la partie du programme ou il y a le run :
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
| public void run(){
//creation de l'instance du Thread
UnThread Thread = new UnThread();
//activation du Thread
Thread.start();
while(Thread.isAlive()){
//vérifier si de nouveaux fichiers TIFF générés sont apparus dans le répertoire de génération des fichiers "tif"
String repertoire1 = path; //sogerma.tiffiles.path=/PDMLinkShare/pdmdevTifFiles
String repertoire2 = pathxml2;
File f1 = new File(repertoire1);
File f2 = new File(repertoire2);
String[] listefichiers1 = f1.list();
String[] listefichiers2 = f2.list();
String s1, s2, s_2, s3;
//récupéré les fichiers TIFF et les integrer dans le PDM
for (int i = 0; listefichiers1 != null && i < listefichiers1.length; i++) {
if(listefichiers1[i].endsWith(".tif")==true){
s1 = new String(listefichiers1[i]);
System.out.println("s1 :" + s1);
s2 = s1.substring(0, s1.length()-3);
s_2 = s2 + "xml";
System.out.println("s_2 :" + s_2);
File file_Name1 = new File(s1);
//vérifier si il existe le fichier "xml" pour loader le fichier tif dans PDMLink
for (int j = 0; listefichiers2!= null && j < listefichiers2.length; j++) {
File file_Name2 = new File(listefichiers2[j]);
if(listefichiers2[j].endsWith(".xml")==true){
if(listefichiers2[j].equals(s_2)==true){
System.out.println("s_2 trouve " );
//String path = System.getProperty("user.dir");
//rechercher dans le fichier "xml" la valeur de "<xmlpartNumber>"
org.jdom.Document document = null ;
try {
//On cree une instance de SAXBuilder
SAXBuilder sxb = new SAXBuilder();
document = sxb.build(new File("listefichiers2[j]"));
} catch (IOException e) {
System.out.println("Erreur lors de la lecture du fichier "
+ e.getMessage() );
} catch (JDOMException e){
System.out.println("Erreur lors de la construction du fichier JDOM "
+ e.getMessage() );
e.printStackTrace();
}
try {
//On initialise un nouvel element racine avec l'element racine du document.
Element racine = document.getRootElement();
//declarer le chemin Ã* chercher.
XPath xpa = XPath.newInstance("./xmlpartNumber");
//obtenir la valeur retournée du premier noeud répondant à notre requête
Element noeudCourant = (Element) xpa.selectSingleNode(racine);
String retour = xpa.valueOf(noeudCourant);
System.out.println("Valeur : " + retour);
WTPart part = sgUtils.getPart(retour);
System.out.println("les valeurs de <xmlpartNumber> :" + part);
//load du fichier "tif" Ã* partir du fichier "xml"
//s3 = new String(listefichiers2[j]);
boolean load = loadXML(part, path, listefichiers2[j]);
}
catch (JDOMException e) {
System.out.println("Erreur JDOM " + e.getMessage() );
e.printStackTrace();
}
//suppression des fichiers "tif" et "xml"
file_Name1.delete();
file_Name2.delete();
}
else{
System.out.println("s_2 pas trouve " );
//renommage des fichiers "tif" et "xml" quand ils ne sont pas les mêmes
File destination1 = new File(file_Name1 + "_diff");
file_Name1.renameTo(destination1);
File destination2 = new File(file_Name2 + "_diff");
file_Name2.renameTo(destination2);
}
}
}
}
}
try{
//faire une pause de 100 pour simuler un traitement
System.out.println("Je dors");
Thread.sleep(10000000);
}
catch(InterruptedException ex){}
}
} |
et puis là ma fonction main :
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
| class Test{
public static void main (String [] args){
try {
sgUtils.login("wcadmin","wcadmin");
WTPart P = null;
sgGenPrintBatch sgP = new sgGenPrintBatch();
P = sgUtils.getPart(args[0]);
System.out.println("Numero de l'article : "+ P);
EPMDocument[] D = null;
D = sgUtils.getCATDrawing(P);
System.out.println("Tableau des EPMDocuments : "+ D);
for (int i=0; i<D.length ;i++){
sgP.sgGenPrintBatchExe(D[i]);
System.out.println("<<----Fin Fichier xml generation Tif ---->> "+ D[i]);
sgP.sgGenPrintBatchTiff(P, D[i]);
System.out.println("<<----Fin Fichier xml integration Tif---->> "+ P + D[i]);
}
UnThread uT = new UnThread();
uT.start(); //ou uT.run même probleme
}
catch (Exception e) {
e.printStackTrace();
}
}
} |
Si quelqu un est passé par le même probleme est a reussi à le resoudre, qu il m aide à comprendre ce probleme d excecution.
merci.
Partager