1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

java XML über socket schicken, server blockiert

  • wuz_thomas
  • 23. Juni 2006 um 17:29
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • wuz_thomas
    Punkte
    1.501
    Beiträge
    195
    • 23. Juni 2006 um 17:29
    • #1

    Hi! Aus irgendeinem grund blockiert der Server beim einlesen des inputstreams sobald ich auf dem client auf den socket inputstream zugreife.

    Client:

    Code
    Socket socket = new Socket(server, port); 
    
                OutputStream out = socket.getOutputStream();
                Document xmlDoc = Marshaller.getInstance().marshall(className, methodName, returnType, params);
                Source src = new DOMSource(xmlDoc); 
                Result dest = new StreamResult(out); 
                aTransformer.transform(src, dest); 
                out.flush();
                PrintWriter pwriter = new PrintWriter(out,true);
                /* wenn ich den DataInputStream tkiviere blockiert der Server
                DataInputStream in = new DataInputStream(socket.getInputStream());
                BufferedReader bin = new BufferedReader( new InputStreamReader(in));
                readInput(in);
                String fromServer;
                while ((fromServer = bin.readLine()) != null) {
                    System.out.println(fromServer);
                }
                */
                out.close();
                pwriter.close();
                //in.close();
                socket.close();
    Alles anzeigen

    Server:

    Code
    in = socket.getInputStream();
                readInput();
                handleRequest();
                PrintStream os = new PrintStream(socket.getOutputStream());
                Document xmlDoc = at.evs.server.Marshaller.getInstance().marshall(returnType, result);
                Source src = new DOMSource(xmlDoc); 
                Result dest = new StreamResult(os); 
                TransformerFactory tranFactory = TransformerFactory.newInstance(); 
                Transformer aTransformer = tranFactory.newTransformer();
                aTransformer.transform(src, dest); 
                os.flush();
                os.close();
                socket.close();
    Alles anzeigen

    jemand eine idee parat?

  • MichiK
    Punkte
    786
    Beiträge
    153
    • 24. Juni 2006 um 00:11
    • #2

    Ein bißl zu wenig Source um ein mögliches Problem zu erkennen

    source von

    readInput();
    handleRequest();

    des servers wäre interessant

  • wuz_thomas
    Punkte
    1.501
    Beiträge
    195
    • 24. Juni 2006 um 13:34
    • #3

    argh, big thx für deine anteilnahme! habs jetzt so gelöst, dass ich aus dem DOM-tree ein xml-document mache, dann das xml-document in einen string einlese und einfach den string als ganzes rüberschicke.. nicht die eleganteste lösung aber es funktioniert.

    würde mich aber trotzdem interessieren wieso der server da blockiert hat ohne zumindest einmal in die schleife zum einlesen hineinzugehen, aber vielleicht hat ja jemand aus meiner gruppe noch den alten code für readInput();
    handleRequest();
    des servers..

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum