Почему я получаю ошибку сервера при попытке использовать JSTL XML? - PullRequest
0 голосов
/ 02 ноября 2018

Я воспроизводлю учебник по использованию XML в моих файлах JSP.

Я использую Google App Engine в качестве сервера.

Вот мой код:

web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
  <welcome-file-list>
    <welcome-file>rapportInventaire.jsp</welcome-file>
  </welcome-file-list>
</web-app>

test.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>

rapportInventaire.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" %>
<html>
    <head>
    </head>
    <body>
        <c:import url="test.xml" var="documentXML"/>
        <x:parse var="doc" doc="${documentXML}" />
        <p><b>Liste de tous les livres :</b></p>
        <div>
            <ul>
            <%-- Parcours du document parsé pour y récupérer chaque nœud "livre". --%>
                <x:forEach var="livre" select="$doc/inventaire/livre">
                <%-- Affichage du titre du livre récupéré. --%>
                <li><x:out select="$livre/titre" /></li>
                </x:forEach>
            </ul>
        </div>
    </body>
</html>

ОБРАЗЕЦ ЖУРНАЛА ОШИБКИ

HTTP ОШИБКА 500

Проблема с доступом /. Причина:

    Server Error
Caused by:

org.apache.jasper.JasperException: An exception occurred processing JSP page [/rapportInventaire.jsp] at line [14]

11:         <div>
12:             <ul>
13:             <%-- Parcours du document parsé pour y récupérer chaque n?ud "livre". --%>
14:                 <x:forEach var="livre" select="$doc/inventaire/livre">
15:                 <%-- Affichage du titre du livre récupéré. --%>
16:                 <li><x:out select="$livre/titre" /></li>
17:                 </x:forEach>

StackTrace:

at org.apache.jasper.servlet.JspServletWrapper.handleJspException (JspServletWrapper.java:584)

at org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:466)

...

Причина:

java.lang.NoClassDefFoundError: org / apache / xpath / XPath

at org.apache.taglibs.standard.tag.common.xml.ForEachTag.setSelect (ForEachTag.java:96)

at org.apache.jsp.rapportInventaire_jsp._jspx_meth_x_005fforEach_005f0 (rapportInventaire_jsp.java:252)

...

Так что после поиска в сети я включил XALAN jars в мою директорию lib без какого-либо успеха.

В руководстве говорилось, что включение <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> будет работать и импортировать XML-функции, но это не так.

Любая помощь очень ценится

...