Warum bekomme ich InvalidProtocolBufferException beim erstellen einer Nachricht.Generator aus byte-array, aber nicht einen InputStream?

Arbeite ich an ein Servlet und versuchen, sich den Anforderungen. Der entscheidende Teil des Codes den Fehler verursacht, ist die folgende:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    StringWriter writer = new StringWriter();
    IOUtils.copy(request.getInputStream(), writer);
    Message.Builder builder = something of type com.google.protobuf.GeneratedMessage.Builder;
    builder.mergeFrom(writer.toString().getBytes());
}

Die Letzte Zeile des obigen code-Ergebnisse in der folgenden Ausnahme:

com.google.protobuf.InvalidProtocolBufferException: Protocol message tag had invalid wire type.

Jedoch, wenn der code eingeschaltet ist:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    Message.Builder builder = something of type com.google.protobuf.GeneratedMessage.Builder;
    builder.mergeFrom(request.getInputStream());
}

Gibt es keine Fehlermeldung und alles funktioniert einwandfrei. Was könnte das problem sein? Ich glaube, ich brauche etwas ähnlich wie der erste code-snippet, da ich den input stream ein zweites mal (einmal schreiben es in eine Datei, und einmal, um den Prozess der tatsächlichen Anfrage).

Wie sieht Ihr data Holen Sie gebaut?

InformationsquelleAutor jonderry | 2011-02-05

Schreibe einen Kommentar