web-dev-qa-db-fra.com

SAXParseException: le contenu n'est pas autorisé dans le prologue

J'ai besoin d'ajouter le fichier suivant à mon répertoire '/ conf' de Tomcat:

<?xml version="1.0" encoding="UTF-8"?>
<Context useHttpOnly="false" path="/bbc">
    <Realm className="com.bbc.Tomcat.BBCSecurityRealm"/>
</Context>

Après avoir ajouté ce fichier, le message d'erreur suivant s'affiche au démarrage de Tomcat "

ERROR ecmdefault util.digester.Digester 18:37:14,477 localhost-startStop-1 : Parse Fatal Error at line 1 column 1: Content is not allowed in prolog.
org.xml.sax.SAXParseException: Content is not allowed in prolog.
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.Java:195)
    at com.Sun.org.Apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.Java:174)
    at com.Sun.org.Apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.Java:388)
    at com.Sun.org.Apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.Java:1427)
7
Dónal

Votre fichier xml a des caractères invisibles (probablement la nomenclature) au début (avant <?xml version="1.0" encoding="UTF-8"?>), ce qui n’est pas autorisé en xml. vous pouvez le voir en utilisant un éditeur hexadécimal. Le moyen le plus simple de résoudre ce problème consiste à créer un fichier texte vide et à y copier le contenu, à changer l'extension en xml.

Cochez cette réponse pour plus d’aide.

De http://www.rgagnon.com/javadetails/Java-handle-utf8-file-with-bom.html

Les fichiers UTF8 constituent un cas particulier, car il est déconseillé d’ajouter une nomenclature à ceux-ci car ils risquent de casser d’autres outils comme Java. En fait, Java suppose que l'UTF8 ne possède pas de nomenclature. Par conséquent, si la nomenclature est présente, elle ne sera pas supprimée et sera considérée comme une donnée. 

13
A4L

J'ai eu un problème similaire mais cette référence link a fourni la solution sur place. 

Citation de l'article.

Tous les caractères avant le début du contenu XML provoqueront l'erreur ci-dessus.

org.xml.sax.SAXParseException: Content is not allowed in prolog error message.
0
rslj