2016-03-31 5 views
0

Ich versuche Java-generierten JSON-Stream zu lesen, erstellt von out.writeBytes mit meiner Xpage. Ich kann Daten wie getServerPort und andere erhalten (im Code unten aufgeführt), aber wenn ich versuche, Kontext mit BufferedReader oder ServletInputStream zu lesen, empfange ich Fehler. Jeder weiß einfach, Streaming-Inhalte wie auf Xpage zu lesen? readLine Methode gab null zurück.Xpage lesen JSON-Kontext - http POST-Anfrage

var exCon = facesContext.getExternalContext() 
    var httpRequest:javax.faces.contex.ExternalContext =exCon.getRequest(); 

    print("CallCenter getContext "+String(exCon.getContext())) 
    print("CallCenter ContentType "+String(httpRequest.getContentType())) 
    print("CallCenter ContentLength"+String(httpRequest.getContentLength()))   
    print("CallCenter RemoteAddr "+String(httpRequest.getRemoteAddr()  )) 
    print("CallCenter ServerPort "+String(httpRequest.getServerPort())) 

    facesContext.responseComplete(); 

     // ONE OF METHODS I've TRIED ============= 
     var stringBuffer:java.lang.StringBuffer = new java.lang.StringBuffer(80); 
     var line = null;     
     var reader:java.io.BufferedReader = httpRequest.getReader(); 
     while ((line = reader.readLine()) != null) 
      { 
      stringBuffer.append(line); 
      stringBuffer.append("\n"); 
      }  
      print("Buffer "+stringBuffer.toString()); 

      // ============================ 


    } catch(e) { 

    _dump(e); 

fdf

+0

Welche Art von Fehler erhalten Sie? –

+0

Ich bekomme Fehler: JVM: java.lang.IllegalStateException: Kann BufferedReader nicht verwenden, während ServletInputStream in Verwendung ist – user2882496

Antwort

1

Es kann nur einer sein: der Strom oder der Leser. Anstelle von getReader() benutze new InputStreamReader (in); in den Eingangsstrom des Kontexts zeigen

+0

Danke! InputStreamReader hat [email protected] (hash) zurückgegeben - Was ist die Xpage-Implementierung von Arrays.toString(), um diesen Inhalt in einer einfachen Zeichenfolge zu erhalten? – user2882496

+0

Die toString() - Methode eines Readers führt NICHT zum Inhalt des Streams als String. Es gibt nichts besonderes in XPages, das sind Standard-Java-Klassen. Sie tun reader.readline() Schleife wie jeder Leser – stwissel

Verwandte Themen