JSP XSLT innerhalb von JSP

Erando

Mitglied
Hallo Leute,
ich habe eine XML-Datei, für welche ich eine XSL Datei geschrieben habe. Das klappt alles ganz wunderbar und sieht im Browser gut aus. Jetzt will ich das aber innerhalb einer JSP-Datei haben und hab dafür folgenden Code:

[XML]
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html >
<head>
<title>Using a Named Template with Global Parameters</title>
</head>

<body>
<c:import url="/xml/Changes.xml"
var="inputDoc" />

<c:import url="xslt/changes.xsl"
var="stylesheet" />

<x:transform xml="${inputDoc}" xslt="${stylesheet}">

</x:transform>
</body>
</html>
[/XML]

Ich habe jstl.jar und standard.jar unter WEB-INF/lib abgelegt, Eclipse zeigt auch keine Fehler mehr an in den import-Zeilen. Wenn ich aber "Run on Server" (Tomcat 7 @ localhost) mache, kommt nur ein Error

"The selection did not contain any resources that can run on a server."

Normale JSP-Dateien krieg ich problemlos zum laufen.

Gibt es noch andere Möglichkeiten, XSLT innerhalb von JSPs zu ermöglichen?

Bin für jede Anregung dankbar!
 

Erando

Mitglied
Auch bei diesem praktisch leeren Code kommt fer Fehler:

[XML]
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html >
<head>
<title>Using a Named Template with Global Parameters</title>
</head>

<body>

</body>
</html>
[/XML]

Irgendwas stimmt mit den librarys noch nicht...nur was?
 

Erando

Mitglied
Der Fehler lag übrigens an verkorsten Einstellungen in meiner web.xml. Jetzt kommt dieser Fehler zumindest nicht mehr.

Allerdings klappt es immer noch nicht, Tomcat 6.0.32 (arbeite jetzt auf einem Server) gibt folgende Fehlermeldung aus:


Code:
TransformerConfigurationException: Could not compile stylesheetERROR:  'Content is not allowed in prolog.'
FATAL ERROR:  'Could not compile stylesheet'
2011-12-13 16:07:14,462 INFO  info.magnolia.module.samples.filters.SampleFilter : Executing sample filter
[Fatal Error] jstl::1:1: Content is not allowed in prolog.
ERROR:  'Content is not allowed in prolog.'
FATAL ERROR:  'Could not compile stylesheet'
2011-12-13 16:07:14,658 ERROR info.magnolia.cms.taglibs.Include                 : Can't render paragraph template /templates/tb/paragraphs/xsltParagraph.jsp
info.magnolia.module.templating.RenderException: Can't render paragraph template /templates/tb/paragraphs/xsltParagraph.jsp
        at info.magnolia.module.templating.paragraphs.JspParagraphRenderer.onRender(JspParagraphRenderer.java:58)
        at info.magnolia.module.templating.AbstractRenderer.render(AbstractRenderer.java:94)
[...]      
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.RuntimeException: org.apache.jasper.JasperException: An exception occurred processing JSP page /templates/tb/paragraphs/xsltParagraph.jsp at line 22

19:               var="stylesheeet" />
20:
21:
22: <x:transform xml="${inputDoc}" xslt="${stylesheeet}">
23:
24: </x:transform>


Stacktrace:
        at info.magnolia.context.WebContextImpl.include(WebContextImpl.java:180)
        at info.magnolia.module.templating.paragraphs.JspParagraphRenderer.onRender(JspParagraphRenderer.java:56)
        ... 164 more
Caused by: org.apache.jasper.JasperException: An exception occurred processing JSP page /templates/tb/paragraphs/xsltParagraph.jsp at line 22

19:               var="stylesheeet" />
20:
21:
22: <x:transform xml="${inputDoc}" xslt="${stylesheeet}">
23:
24: </x:transform>


Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:519)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:410)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      [...]
Caused by: javax.servlet.ServletException: javax.servlet.jsp.JspException: javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
        at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:861)
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
        at org.apache.jsp.templates.tb.paragraphs.xsltParagraph_jsp._jspService(xsltParagraph_jsp.java:104)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
        ... 178 more
Caused by: javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:828)
        at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:617)
        at org.apache.taglibs.standard.tag.common.xml.TransformSupport.doStartTag(TransformSupport.java:154)
        at org.apache.jsp.templates.tb.paragraphs.xsltParagraph_jsp._jspx_meth_x_005ftransform_005f0(xsltParagraph_jsp.java:248)
        at org.apache.jsp.templates.tb.paragraphs.xsltParagraph_jsp._jspService(xsltParagraph_jsp.java:97)
        ... 181 more

Meine XML-Datei beginnt so:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="changes.xsl" ?>
<r_aenderungen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="_r_aenderungen.xsd">[/XML]

Meine XSL - Datei:

[XML]
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>



[...]

<x:transform xml="${inputDoc}" xslt="${stylesheeet}">

</x:transform>[/XML]

Der Fehler muss irgendwo während der Transformation sein...("TransformerConfigurationException").

Weiß jemand woran das liegen könnte...?
Wär ich sehr dankbar...
 

Ähnliche Java Themen

Neue Themen


Oben