1

I am working with JSP for a j2e app and I have an issue trying to work with xml jstl library. When I try to parse the file I have this error : [Fatal Error] jstl::1:1: Content is not allowed in prolog

I have check only course and error base but I am not able to solve my issue.

Here is my XML :

<?xml version="1.0" encoding="utf-8"?>
<inventaire>
  <livre>
    <auteur>Pierre</auteur>
    <titre>D&#233;veloppez vos applications web avec JRuby !</titre>
    <date>Janvier 2012</date>
    <prix>22</prix>
    <stock>127</stock>
    <minimum>10</minimum>
  </livre>
  <livre>
    <auteur>Paul</auteur>
    <titre>D&#233;couvrez la puissance du langage Perl</titre>
    <date>Avril 2017</date>
    <prix>26</prix>
    <stock>74</stock>
    <minimum>10</minimum>
  </livre>
  <livre>
    <auteur>Matthieu</auteur>
    <titre>Apprenez &#224; programmer en C</titre>
    <date>Novembre 2009</date>
    <prix>25</prix>
    <stock>19</stock>
    <minimum>20</minimum>
  </livre>
  <livre>
    <auteur>Matthieu</auteur>
    <titre>Concevez votre site web avec PHP et MySQL</titre>
    <date>Mars 2010</date>
    <prix>30</prix>
    <stock>7</stock>
    <minimum>20</minimum>
  </livre>
  <livre>
    <auteur>Cysboy</auteur>
    <titre>La programmation en Java</titre>
    <date>Septembre 2010</date>
    <prix>29</prix>
    <stock>2000</stock>
    <minimum>20</minimum>
  </livre>
</inventaire>

And my jsp :

<%@ page pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
    <p>
        <c:import var="bookInfo"
            url="inventaire.xml" />
<%--        <x:parse var="output" xml="${bookInfo}" /> --%>
        <x:parse var="doc" doc="${bookInfo}" />
        <x:out select="$doc/inventaire/livre[1]/titre" />
        <br>

    </p>
</body>
</html>

Full stack trace :

[Fatal Error] jstl::1:1: Content is not allowed in prolog.
May 25, 2020 10:06:02 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/jstl_exo2] threw exception [An exception occurred processing [rapportInventaire.jsp] at line [17]

14:             url="inventaire.xml" />
15: <%--        <x:parse var="output" xml="${bookInfo}" /> --%>
16:         <x:parse var="doc" doc="${bookInfo}" />
17:         <x:out select="$doc/inventaire/livre[1]/titre" />
18:         <br>
19: 
20:     </p>


Stacktrace:] with root cause
org.xml.sax.SAXParseException; systemId: jstl:; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
    at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)
    at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
    at org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSource(ParseSupport.java:236)
    at org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseInputSourceWithFilter(ParseSupport.java:202)
    at org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseReaderWithFilter(ParseSupport.java:208)
    at org.apache.taglibs.standard.tag.common.xml.ParseSupport.parseStringWithFilter(ParseSupport.java:215)
    at org.apache.taglibs.standard.tag.common.xml.ParseSupport.doEndTag(ParseSupport.java:147)
    at org.apache.jsp.rapportInventaire_jsp._jspx_meth_x_005fparse_005f0(rapportInventaire_jsp.java:233)
    at org.apache.jsp.rapportInventaire_jsp._jspService(rapportInventaire_jsp.java:152)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)

I am using a maven project with this pom :

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>inc.game.small</groupId>
  <artifactId>jstl_exo2</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>jstl_exo2 Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
    <groupId>jstl</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
  </dependencies>
  <build>
    <finalName>jstl_exo2</finalName>
  </build>
</project>

If anyone has an idea ?

Regard

Quentin

Quentin M
  • 171
  • 2
  • 11
  • 1
    I tested your code its working fine ..Maybe there is some whitespaces at the start of your `xml` file check that .Also , see [this](https://stackoverflow.com/a/16418905/10606400) as well – Swati May 25 '20 at 09:18
  • Hello thx for taking the time to look at it. – Quentin M May 25 '20 at 11:00

0 Answers0