Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [axis2] cercare un file all'interno del web server

    salve a tutti.

    premetto subito che sono alle prime armi per creazione di applicazione web con axis2+tomcat. ho creato una prima applicazione CiaoMondo seguendo alcuni tutorial su internet, credo di aver capito i primi funzionamenti di base dei web server. Infatti l'applicazione funziona perfettamente.

    Ora sto cercando di creare una funzione del mio lavoro di tesi, e non riesco a capire una cosa basilare dove inserire i miei file nella cartella del web service con axis2. Mi creo la mia applicazione web server con java con questo codice:
    codice:
    package wtp;
    
    import java.io.File;
    
    public class XmlFileSource {
        public String XMLPercorsoFile(){
            return "http://localhost:8080/TrafficLightGoogleMapServer/WebContent/WEB-INF/xml/tratte.xml";
        }
        public String XMLStringFile(){
            return null;
        }
        public boolean  esistXMLFile(){
            File file= new File("http://localhost:8080/TrafficLightGoogleMapServer/WebContent/WEB-INF/xml/tratte.xml");
            if(file.exists())
                return true;
            return false;
        }
    
    }
    dentro la cartella WEB-INF ho creato un file tratte.xml nella cartella xml, che ci sono delle coordinate google map, che mi servono per l'applicazione client. ora mi creo il file services.xml usando il tool di eclipse e dpo mi creo l'applicazione client con il wdsl generato da tool con axis2. ora mi faccio la classe java per gestire il client:
    codice:
    package wtp;
    
    import java.rmi.RemoteException;
    
    import org.apache.axis2.AxisFault;
    
    import wtp.XmlFileSourceStub.XMLPercorsoFile;
    import wtp.XmlFileSourceStub.EsistXMLFile;
    import wtp.XmlFileSourceStub.EsistXMLFileResponse;
    import wtp.XmlFileSourceStub.XMLPercorsoFileResponse;
    
    public class XmlFileClient {
        public static void main(String[] args) {
            final int CLIENT_TIMEOUT = (10 * 60 * 1000);
            String percorso=null;
            try {
                XmlFileSourceStub stub = new XmlFileSourceStub();
                stub._getServiceClient().getOptions()
                        .setTimeOutInMilliSeconds(CLIENT_TIMEOUT);
                XMLPercorsoFile file = new XmlFileSourceStub.XMLPercorsoFile();
                EsistXMLFile esiste= new  XmlFileSourceStub.EsistXMLFile();
                EsistXMLFileResponse resEsiste=stub.esistXMLFile(esiste);
                XMLPercorsoFileResponse res = stub.xMLPercorsoFile(file);
                percorso= res.get_return();
                boolean esisteFlag= resEsiste.get_return();
                System.out.println("percorso : " + percorso+" esiste: "+esisteFlag);
                
            } catch (AxisFault e) {
                e.printStackTrace();
            } catch (RemoteException e) {
                e.printStackTrace();
            }
        }
    }
    il progetto funziona pero stampa questo a video:
    codice:
    percorso : http://localhost:8080/TrafficLightGoogleMapServer/WebContent/WEB-INF/xml/tratte.xml esiste: false
    ho provato pure con altri percorsi e copiato il file tratte.xml in vari punti del cartelle di web-inf ma stampa sempre il file non esiste. I permessi del file lo settati a 777 per essere sicuro che non sia problemi del file.


    sapete un modo per capire il funzionamento bene del server creato con asix2, qualsiasi guida e ben gradita. oppure qualche funziona gia creata che invia al client la lista dei file presenti nel server.

    qualsiasi suggerimento è ben gradito.

    Grazie mille ^^

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da orphenix Visualizza il messaggio
    dove inserire i miei file nella cartella del web service con axis2.
    codice:
    File file= new File("http://localhost:8080/TrafficLightGoogleMapServer/WebContent/WEB-INF/xml/tratte.xml");
    Innanzitutto java.io.File con http://xxx non ha assolutamente senso (File opera con percorsi su file-system ... non con url!).

    Poi comunque dovresti precisare cosa devi farci con quel file tratte.xml. Devi leggerlo programmaticamente (eventualmente parsarlo)? Devi restituire il suo contenuto pari pari attraverso un web-service o in altro modo?

    Quote Originariamente inviata da orphenix Visualizza il messaggio
    qualche funziona gia creata che invia al client la lista dei file presenti nel server.
    Per questo non è che c'è un qualche standard o convenzione particolare. Dipende da chi deve ottenere la lista dei file (e dove oltretutto). Se devi farlo programmaticamente, ci sono i ben noti metodi list/listFiles di java.io.File. Il "come" restituire un elenco di file .... è un altro discorso ancora.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    grazie andbin, ormai posso fare solo riferimento su di te ^^.

    allora mi spiego un po meglio il server deve avere 2 funzioni
    1. che deve restituire il percorso del file tratte.xml che si trova sul server.
    2. la seconda funzione invece deve leggere il file xml e inviare il contenuto al client.

    il client deve fare queste 2 cose:
    1. con un menu io chiedo se vuole il percorso del file oppure il contenuto( veramente l'operazione che mi serve sarebbe un altro...pero si puo semplificare in questo)
    2. se chiedo il percorso del file ..il server deve restituirmi il file, dopo che che lo devo aprire ed eseguire un parse Json.
    3. se chiedo il file invece deve inviarmi il contenuto del file al client come stringa, dopo eseguo il parse json di questo file.

    Poi comunque dovresti precisare cosa devi farci con quel file tratte.xml. Devi leggerlo programmaticamente (eventualmente parsarlo)? Devi restituire il suo contenuto pari pari attraverso un web-service o in altro modo?

    Originariamente inviata da orphenix
    qualche funziona gia creata che invia al client la lista dei file presenti nel server.



    Per questo non è che c'è un qualche standard o convenzione particolare. Dipende da chi deve ottenere la lista dei file (e dove oltretutto). Se devi farlo programmaticamente, ci sono i ben noti metodi list/listFiles di java.io.File. Il "come" restituire un elenco di file .... è un altro discorso ancora.
    per quando riguardala funzione, deve fare questo... il client fa la richiesta al server di dargli tutti i file nella cartella xml e deve restituirli il percorso completo al client ...... che poi con una funziona apri questi file e controllo il contenuto in modo appropriato


    Poi un altra cosa sai dirmi:
    andbin Originariamente inviata da orphenix
    dove inserire i miei file nella cartella del web service con axis2.
    codice:
    File file= new File("http://localhost:8080/TrafficLightGoogleMapServer/WebContent/WEB-INF/xml/tratte.xml");




    Innanzitutto java.io.File con http://xxx non ha assolutamente senso (File opera con percorsi su file-system ... non con url!).

    Poi comunque dovresti precisare cosa devi farci con quel file tratte.xml. Devi leggerlo programmaticamente (eventualmente parsarlo)? Devi restituire il suo contenuto pari pari attraverso un web-service o in altro modo?
    cmq credo che per aprire questo file .xml sul server dovro usare un inputstream, ora credo ch mi sn ricordato come fare, pero mi serve una funziona precisa di come farmi restituire il percorso del file che mi serve.


    Grazie mille.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da orphenix Visualizza il messaggio
    1. che deve restituire il percorso del file tratte.xml che si trova sul server.
    Questo ha relativamente poco senso. Client e Server sono generalmente macchine distinte (tranne es. sulla tua macchina di sviluppo ).
    Quindi fornire al client il percorso (su file system) del file sul server non serve a niente.
    Se il file è sotto WEB-INF nella webapp, poi non è nemmeno possibile fornire un URL per l'accesso diretto via http (ciò che c'è sotto WEB-INF non è visibile su http).

    Quote Originariamente inviata da orphenix Visualizza il messaggio
    2. la seconda funzione invece deve leggere il file xml e inviare il contenuto al client.
    Se non c'è una qualche funzionalità che permette ad esempio di indicare ad Axis (che non conosco) il percorso/url locale lasciando fare ad Axis, lettura/invio ...... allora devi farlo "a mano" con del tuo codice.
    E nota: in questi casi non si usa java.io.File!! Puoi leggere lo stream del file o con getResourceAsStream() di Class (usa il class-loader e concetto di classpath) oppure usi getResourceAsStream() (stesso nome) ma di ServletContext (non usa il class-loader).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.