Question

    

Cette question a déjà une réponse ici:

         

J'écris un servlet qui reçoit un fichier xml, donne à une autre classe et donne un fichier html avec quelques commentaires au client. Je reçois le xml d'entrée avec quelque chose comme:

input = request.getInputStream();

mais cette entrée est un ServletInputStream et l'autre classe (pour les commentaires) a besoin d'un FileInputStream.

Si je donne la XMLEventReader (dans l'autre classe) le ServletInputStream, je reçois une erreur d'analyse:

ParseError at [row,col]:[1,1]
Message: Content is not allowed in prolog.

Et je pense que cela est dû à la ServletInputStream au lieu du FileInputStream.

Salutations J'espère que quelqu'un peut me aider:)

Était-ce utile?

La solution

vous devriez lire les données de la ServletInputStream, et le jeter dans un FileOutputStream. De cette façon vous pouvez regarder les données qui sont envoyées, puis de tester les données séparément à l'aide FileInputStream avec la classe que vous avez décrit qui en a besoin. je suppose que la même chose va se passer comme cela se passe maintenant depuis que l'affiche précédente a suggéré, les données sont probablement dans le mauvais format.

Autres conseils

Je pense qu'il est peu probable que ce dernier problème est dû à ce être un ServletInputStream. L'analyseur ne doit pas se soucier de la source des données.

Je pense qu'il est un peu plus probable que les données dans le flux d'entrée est incorrect.

Votre classe qui exige actuellement FileInputStream devrait être refactorisé à travailler avec InputStream si à tous possible ... sinon vous devrez écrire les données dans un fichier réel en premier lieu, ce qui est évidemment pas idéale .

D'accord, je suis maintenant plus intelligent bits :) Le problème est: Dans le ServletInputStream est au début (et une ligne à la fin) des informations d'en-tête (comme type de contenu, etc ..). Y at-il une solution intelligente pour couper cette information?

salutations

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top