Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568

    [java] servizio per windows

    ciao a tutti..

    ho creato un eseguibile in java che controlla i files zip presenti su una cartella e quando ne trova di nuovi, li decompatta e li sposta in un path predefinito...

    tramite semplice programmino ( exe4j) genero un file .exe come servizio e lo installo...

    il servizio si installa correttamente, solo che quando lo avvio mi da il seguente errore :

    "Errore 1053: Il servizio non ha risposto alla richiesta di avvio o controllo nel tempo previsto"

    Facendo delle prove ( togliendo codice ) o trovato la parte di codice che non gli piace... ma in cosa sbaglio ???

    codice:
    	// CONTROLLO CICLICO DELLA CARTELLA
    	public void monitorFolder() {
    		int count = 1;
    		Vector cambiamentiFolder; 
    		while (count > 0){
    			// CARICO IL VETTORE PER IL CONTROLLO
    			mod = new Vector();
    			mod = cercaFileZip();
    			// CONFRONTO
    			cambiamentiFolder = new Vector();
    			cambiamentiFolder = trovaDifferenze(orig,mod);
    			// CONTROLLO CAMBIAMENTI
    			for(int a = 0;a < cambiamentiFolder.size();a++){
    				// RECUPERO FILE
    				File fileZip = (File)cambiamentiFolder.elementAt(a);
    				// SCRITTURA LOG
    				try {
    					pathLog.log("Nuovo File Zip Rilevato ",fileZip.getName());
    				} catch (IOException e1) {
    					e1.printStackTrace();
    				} 
    				// UNZIP DEL FILE
    				try {
    					unzip(fileZip.getAbsolutePath());
    					// SCRITTURA LOG
    					try {
    						pathLog.log("Unzip del file in ",pathFolderUnzip);
    					} catch (IOException e1) {
    						e1.printStackTrace();
    					} 
    				} catch (IOException e2) {
    					// SCRITTURA LOG
    					try {
    						pathLog.log("UNZIP DEL FILE NON RIUSCITO !!! ",e2.getMessage());
    					} catch (IOException e1) {
    						e1.printStackTrace();
    					}
    				}
    
    				// SPOSTA FILE ZIP
    				if (new File(pathFolderUnzip, fileZip.getName()).exists()==false){
    					fileZip.renameTo(new File(pathFolderUnzip, fileZip.getName()));
    				}else{
    					fileZip.delete();
    				}
    				
    				// SCRITTURA LOG
    				try {
    					pathLog.log("Nuovo path del file zip ",pathMoveFileZip+fileZip.getName());
    				} catch (IOException e1) {
    					e1.printStackTrace();
    				} 
    			} // FINE CICLO FOR
    			
    			// ATTESA ESPRESSA IN MILLISECONDI
    			
    			try{
    				Thread.sleep(timeControl);
    			}catch(InterruptedException e){
    				// SCRITTURA LOG
    				try {
    					pathLog.log("Errori durante tempo di attesa controllo cartella ",e.getMessage());
    				} catch (IOException e1) {
    					e1.printStackTrace();
    				} 
    			}			
    		} // FINE WHILE
    	}
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    su un forum straniero ho letto che ci sono delle regole specifiche per la creazione java di un servizio windows... ci sono un casino di eccezioni o di comandi che non sono accettati... è che anche qui poi la mia ricerca vana si è persa...

    non ho trovato nulla a riguardo...

    ho solo scoperto che per l'avvio del servizio il ciclo di vita del main non deve essere superiore ai 20 secondi... quindi il loop infinito che ho usato non va bene...
    devo creare un thread a parte...

    ma anche così il servizio mi da errori... stavolta mi dice che si ptrebbero essere verificati errori o in windows o nel servizio stesso... uffa che palle...
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  3. #3
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    RISOLTO !!!!!!!

    Per tutti : se avete il mio stesso problema, è sufficiente aprire un thread separato e richiamarlo nel main !!!!
    Si risolve tutto !!!!!!!!!!!

    codice:
    Runnable r = new Runnable() {
    			public void run () {
    				Thread t = Thread.currentThread();
    				try {
    					Thread.sleep(1000);
    				} catch (InterruptedException e) {
    					e.printStackTrace();
    				}
    // FUNZIONE CHE CICLA E CONTROLLA LA CARTELLA
    				scompattaFiles.monitorFolder(); 
    
    			}
    		};
    		(new Thread (r)).start();
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.