Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    10

    Applet JAVA

    Salve a tutti.
    Ho realizzato una applet in java.
    Il client invia al server documenti xml, contenenti i messaggi scritti dagli utenti, e il server, dopo aver ricevuto il documento lo invia a tutti i client.
    L'Applet in locale funziona bene.
    Ora lho messa in remoto, in un server mio, (tomcat installato in ubunto server) il problema è questo: l'Applet viene caricata correttamente, la connessione viene stabilita ma non vengono visualizzati i messaggi scritti.
    Guardando dalla java console si nota che il cliente costruisce un "documento null": questo è ciò che viene visualizzato: [#document: null]
    . Quindi, non viene scritto nulla perchè al server non gli arriva il documento, ok.
    Secondo voi è un problema di codice o è l'Applet che blocca tutto ?
    Da quello che ne so un applet deve avere i giusti permessi per essere eseguita (certificati etc....), forse è un problema di questo genere....grazie in anticipo.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Java viene trattato nell'apposito sub-forum ad esso dedicato.

    Ti sposto.

    Ad ogni modo dovresti fornire un po' più di informazioni come viene costruito il documento XML? Utilizzi delle librerie per il trattamento di XML?


    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    10
    Dunque, importo le seguenti librerie:
    codice:
    import java.io.*;
    import java.net.Socket;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.*;
    
    questo è il metodo che mi costruisce il documento:
    
        public void send(String msg)
        {
            System.out.println("Inizio a costruire il documento da inviare al Server, contenente il messaggio di" +
    " un utente."
    );
            Document doc = builder.newDocument();
            Element radice = doc.createElement("say");
            Text message = doc.createTextNode("message");
            message.setData(msg);
            radice.appendChild(message);
            doc.appendChild(radice);
            System.out.println("");
            System.out.println("Ho costruito il documento");
            System.out.println("Ha questa forma:");
            System.out.println(doc);
            System.out.println(doc.getFirstChild());
            System.out.println("kiamo il metodo sendDocument per inviarlo al server");
            sendDocument(doc);
            System.out.println("Il documento e' stato inviato server");
        }
    
    
    Una volta lanciata l'applet la java console mi mostra il seguente errore:
    
    
    
    Ho appena spinto il pulsante connect
    Creo una nuova istanza di connection
    Ho creato la socket INPUT e OUTPUT stream
    
    Creo il documento contenente il nick da inviare al server
    
    Ho costruito il documento
    Ha questa forma:
    [#document: null]
    [join: null]
    kiamo il metodo sendDocument per inviarlo
    ..........
    ..........
    Da ciò ho dedotto che il cliente non riesce a costruire il documento....
    Se sapete aiutarmi vi ringrazio :=)

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Prova a racchiudere tutte le istruzioni della send() all'interno di un blocco try/catch per verificare se viene lanciata qualche eccezione... anche se non credo, visto che l'esecuzione procede regolarmente.


    Altra domanda: builder che oggetto è?


    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    10
    Ecco la dichiarazione:
    codice:
            private DocumentBuilder builder;
    Grazie del consiglio, appena torno a casa proverò immediatamente con il try e catch

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    E viene istanziato correttamente? Ovvero, da qualche parte, esiste qualcosa del genere:
    codice:
    builder = DocumentBuilderFactory().newInstance().newDocumentBuilder();
    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    10
    Sì, viene istanziato nel costruttore della classe....

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    10
    Ho appena modificato il codice inserendo il try & catch come mi ha detto...Non è cambiato nulla, in ogni caso questo è l'output della console java, ci sono errori in più rispetto a prima!
    Prima mi sono limitato a trascrivere solo alcune parti perchè pensavo che gli errori che si visualizzano ora (socket....) potessero essere una conseguenza del "document:null".....
    Forse è un problema di Tomcat o di java che blocca la costruizione del documento per via di una protezione...
    codice:
    
    Ho appena spinto il pulsante che mi permette di inviare messaggi dentro alla chat.
    Sto per chiamare il metodo send della classe Connection
    Inizio a costruire il documento da inviare al Server, contenente il messaggio di un utente.
    
    Ho costruito il documento
    Ha questa forma:
    [#document: null]
    [say: null]
    kiamo il metodo sendDocument per inviarlo al server
    Il metodo sendDocument e' stato chiamato: ora stampo il documento che sto per inviare al server
    [#document: null]
    [say: null]
    ERRORE:  'Software caused connection abort: socket write error'
    javax.xml.transform.TransformerException: java.net.SocketException: Software caused connection abort: socket write error
    	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(Unknown Source)
    	at twi304.applet1.Connection.sendDocument(Connection.java:321)
    	at twi304.applet1.Connection.send(Connection.java:161)
    	at twi304.applet1.ChatClient.actionPerformed(ChatClient.java:568)
    	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    	at java.awt.Component.processMouseEvent(Unknown Source)
    	at javax.swing.JComponent.processMouseEvent(Unknown Source)
    	at java.awt.Component.processEvent(Unknown Source)
    	at java.awt.Container.processEvent(Unknown Source)
    	at java.awt.Component.dispatchEventImpl(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    	at java.awt.Container.dispatchEventImpl(Unknown Source)
    	at java.awt.Component.dispatchEvent(Unknown Source)
    	at java.awt.EventQueue.dispatchEvent(Unknown Source)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    	at java.awt.EventDispatchThread.run(Unknown Source)
    Caused by: java.net.SocketException: Software caused connection abort: socket write error
    	at com.sun.org.apache.xml.internal.serializer.ToStream.flushWriter(Unknown Source)
    	at com.sun.org.apache.xml.internal.serializer.ToXMLStream.endDocument(Unknown Source)
    	at com.sun.org.apache.xml.internal.serializer.ToUnknownStream.endDocument(Unknown Source)
    	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
    	at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(Unknown Source)
    	at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(Unknown Source)
    	... 29 more
    Mi scuso per il messaggio troppo lungo....

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.