Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    NullPointerException: stai "usando" un oggetto nullo.
    Tale eccezione si verifica nel costruttore della classe File... evidentemente l'oggetto che passi è nullo.
    Stai cercando, quindi, di costruire un oggetto File passando al suo costruttore un "percorso" che è nullo... e questo lo stai facendo nel file FileLoader.java alla riga 19 (classe di cui non sappiamo nulla: non l'hai postata)... tale riga viene invocata alla riga 20 del file HTTPLogHandler (anche questa classe non l'hai postata).
    Quest'ultima classe viene usata alla riga 19 del file HTTPtoIIS... cioè la prima riga del metodo convert().

    Cosa venga fatto all'interno del metodo parse() della classe HTTPLogHandler non ci è dato saperlo, al momento...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  2. #2
    Posto la classe HTTPLogHandler:
    codice:
    public class HTTPLogHandler extends FileLoader{
    
        @Override
        public void parse() {
            for (Iterator<String> i = loadFile().iterator(); i.hasNext();) {
                String next = i.next();
                String[] splitted = next.split(" ", -1);
                
                String ip = splitted[0];
                String usr = splitted[2];
                Calendar date = calendarize(splitted[3]);
                
                String method = removeQuotes(splitted[5]);
                int sepInd = splitted[6].indexOf("/");
                String request = splitted[6].substring(sepInd);
                String protocol = removeQuotes(splitted[7]);
                
                String[] protocolSplit = protocol.split("/");
                String protocolName = protocolSplit[0];
                String protocolVers = protocolSplit[1];
                
                int responseTime = Integer.parseInt(splitted[8]);
                int size = Integer.parseInt(splitted[9]);
                String referer = removeQuotes(splitted[11]);
                String userAgent = next.substring(next.indexOf("("), next.indexOf(")")+1);
                
                HTTPFormat format = new HTTPFormat(ip, usr, date, method, request, protocol, size, size, referer, userAgent);
                parsed.add(format);
    
    
            }
        }
        
        /**
         * Conversione da stringa a formato Calendar.
         * @param s
         * @return 
         */
        public Calendar calendarize(String s){
            s = s.replace("[", "");
            s = s.replace("]", "");
            
            String[] splitted = s.split(" ", -1);
            String dateHour = splitted[0];
            
            int sepIndex = dateHour.indexOf(":");
            String dateString = dateHour.substring(0, sepIndex); //L'indice del separatore è letto correttamente
            String hourString = dateHour.substring(sepIndex+1);
            
            String date[] = dateString.split("/");
            int giorno = Integer.parseInt(date[0]);
            int mese = monthFormat(date[1]);
            int anno = Integer.parseInt(date[2]);
            
            String hour[] = hourString.split(":");
            int hh = Integer.parseInt(hour[0]);
            int mm = Integer.parseInt(hour[1]);
            int ss = Integer.parseInt(hour[2]);
            
            Calendar c = new GregorianCalendar(anno, mese, giorno, hh, mm, ss);
            return c;
        }
        /**
         * Conversione String a formato Integer per i mesi.
         * @param m
         * @return 
         */
        public int monthFormat(String m){
            int month = 0;
            
            if(m.equals("Gen")){
                month = 1;
            } else if(m.equals("Feb")){
                month = 2;
            } else if(m.equals("Mar")){
                month = 3;
            } else if(m.equals("Apr")){
                month = 4;
            } else if(m.equals("May")){
                month = 5;
            } else if(m.equals("Jun")){
                month = 6;
            } else if(m.equals("Jul")){
                month = 7;
            } else if(m.equals("Aug")){
                month = 8;
            } else if(m.equals("Sep")){
                month = 9;
            } else if(m.equals("Oct")){
                month = 10;
            } else if(m.equals("Nov")){
                month = 11;
            } else if(m.equals("Dec")){
                month = 12;
            } 
            return month;
        }
        /**
         * Rimozione virgolette.
         * @param s
         * @return 
         */
        public String removeQuotes(String s){
            char virg = 34;
            String virgolette = String.valueOf(virg);
            s = s.replace(virgolette, "");
            return s;
        }
    
    
    }
    Aggiungo per completezza che Il metodo setFilePath è ereditato dalla classe FileHandler:
    codice:
    public abstract class FileHandler {    List<HTTPFormat> parsed = new LinkedList();
        String filePath;
        
        public List<HTTPFormat> getParsed() {
            return parsed;
        }
    
    
        public void setFilePath(String filePath) {
            this.filePath = filePath;
        }
        
    }
    Per chiarimenti ovviamente, sono qua!
    Ultima modifica di luca93abc; 16-11-2016 a 12:20

Tag per questa discussione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.