为什么在尝试使用JSTL XML时出现服务器错误?

时间:2018-11-02 00:06:39

标签: java xml jsp google-app-engine jstl

我正在复制一个教程,以在我的JSP文件中使用XML。

我使用google app引擎作为服务器。

这是我的代码:

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:

     

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

     

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

     

...

     

原因:

     

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

     

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

     

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

     

...

因此,在网上搜索后,我在lib目录中包含了XALAN个jar,但没有成功。

该教程所说的是,通过包含<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>可以工作并导入XML函数,但是没有。

非常感谢您的帮助

0 个答案:

没有答案