[Java] [JSP] errore in lettura XML (Content is not allowed in prolog.)

codesurfer

Nuovo Utente
13 Feb 2008
16
3
0
Ciao a tutti,
premettendo la niubbagine sull'argomento, ho un problema con il caricamento di un documento XML in JSP.
Il codice l'ho preso da un esempio banale riportato in tantissimi forum/libri/documenti quindi non capisco perchè non funzioni.
Il file JSP è:
Codice:
<%@ page contentType="text/html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>

<html>
	<body>
		<c:import url="books.xml" var="url" />
		<x:parse xml="${url}" var="doc" />
		<x:forEach var="n" select="$doc/books/book"> 
			<x:out select="$n/title"  />
			<br>  
			<x:out select="$n/author"  />  
			<br>
			<br>  
		</x:forEach>
	</body
</html>
Mentre l'XML è:
Codice:
<?xml version="1.0" ?>
<books>            
	<book> 
		<title>cobol</title> 
		<author>roy</author> 
	</book> 
   	<book> 
		<title>java</title> 
		<author>herbert</author> 
	</book> 
</books>
In esecuzione l'errore che ricevo è il seguente:

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Content is not allowed in prolog.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:527)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: org.xml.sax.SAXParseException: Content is not allowed in prolog.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.index2_jsp._jspService(index2_jsp.java:91)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause

org.xml.sax.SAXParseException: Content is not allowed in prolog.
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSource(Unknown Source)
org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSourceWithFilter(Unknown Source)
org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseReaderWithFilter(Unknown Source)
org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseStringWithFilter(Unknown Source)
org.apache.taglibs.standard.tag.common.xml.ParseSupport.doEndTag(Unknown Source)
org.apache.jsp.index2_jsp._jspx_meth_x_005fparse_005f0(index2_jsp.java:140)
org.apache.jsp.index2_jsp._jspService(index2_jsp.java:77)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717

Qualcuno sa darmi una soluzione?
Grazie in anticipo :D
 
  • Like
Reactions: ottofonsuppost
Guarda l'ho creato e ricreato mille volte con tutti gli editor possibili immaginabili. Ho anche provato a inserirlo nel JSP con c:set invece che importarlo ma niente. L'unica cosa che ho notato è che se utilizzo http://java.sun.com/jsp/jstl/xml l'errore è quello che ho riportato nel post di apertura mentre se uso http://java.sun.com/jstl/xml l'errore diventa
Codice:
org.apache.jasper.JasperException: Exception in JSP: /index.jsp:22

19: <html>
20: 	<head></head>
21: 	<body>
22: 	<x:forEach select="$doc/books/book" var="n">
23: 		<x:out select="$n/title" />
24: 	</x:forEach>

Il che se ho letto bene in giro significa che l'XPath non trova nessun valore. L'interrogativo rimane sul content not allowed.

Le configurazioni che ho provato con lo stesso risultato sono tomcat5+Red Hat EL+java-1.6.0-openjdk e tomcat6.0.24+Win7+JDK 6.18+JRE 6.18
 
Ultima modifica:
  • Like
Reactions: ottofonsuppost
Io ho provato il tuo codice e funziona tutto non mi da il tuo errore. Il tuo errore me la dato quando non trova il file xml. Il file xml sta nella stessa cartella della jsp ? controlla anche che il nome del xml scritto nella jsp sia corretto
 
  • Like
Reactions: ottofonsuppost

Discussioni simili