Hallo zusammen!!!!
Ich möchte einen Servlet als PDF-Datei anzeigen, die Transformation erfolgt über einen XML-Datei und einen XSLT-Datei, aber irgendwie kriege ich gar nichts zurück.
Hier ist meinen Source Code,wenn jemand mir helfen kann, wäre ich Ihn sehr dankbar....<BR>
import javax.servlet.*;<BR>
import javax.servlet.http.*;<BR>
import java.io.*;<BR>
//Java<BR>
import java.net.URL;<BR>
//JAXP<BR>
import javax.xml.transform.Transformer;<BR>
import javax.xml.transform.TransformerFactory;<BR>
import javax.xml.transform.Source;<BR>
import javax.xml.transform.Result;<BR>
import javax.xml.transform.stream.StreamResult;<BR>
import javax.xml.transform.stream.StreamSource;<BR>
import javax.xml.transform.sax.SAXResult;<BR>
//Avalon<BR>
import org.apache.avalon.framework.logger.ConsoleLogger;< BR>
import org.apache.avalon.framework.logger.Logger;<BR>
//FOP<BR>
import org.apache.fop.apps.Driver;<BR>
import org.apache.fop.apps.FOPException;<BR>
import org.apache.fop.messaging.MessageHandler;<BR>
import org.xml.sax.InputSource;<BR>
/**<BR>
* @author MEKAOUIR<BR>
*<BR>
* To change the template for this generated type comment go to<BR>
* Window>Preferences>Java>Code Generation>Code and Comments<BR>
*/<BR>
/*<BR>
* This sample applies the TestApduCatalog.xsl stylesheet to the<BR>
* TestApduCatalog.xml XML document, and returns the transformation<BR>
* output (HTML) to the client browser.<BR<BR>>
*<BR>
*/<BR>
public class PDFServlet extends HttpServlet<BR>
{<BR>
/**
* String representing the file separator characters for the System.
*/<BR>
public final static String FS = System.getProperty("file.separator");<BR>
protected Logger log;<BR>
protected TransformerFactory transformerFactory;<BR>
public void init() throws ServletException<BR>
{<BR>
this.log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);<BR>
this.transformerFactory = TransformerFactory.newInstance();<BR>
}<BR>
public void doGet(HttpServletRequest request, HttpServletResponse response)
<BR>throws ServletException, IOException, <BR>java.net.MalformedURLException
{<BR>
try<BR>
{<BR>
int cacheExpiringDuration = 0;<BR>
//Setup FOP<BR>
Driver driver = new Driver();<BR>
driver.setLogger(this.log);<BR>
driver.setRenderer(Driver.RENDER_PDF);<BR>
//Setup a buffer to obtain the content length<BR>
ByteArrayOutputStream out = new ByteArrayOutputStream();<BR>
driver.setOutputStream(out);<BR>
//Setup Transformer<BR>
Source xsltSrc =new StreamSource(new File("..\\DataFormat\\TestApdu.xslt"));<BR>
Transformer transformer =
this.transformerFactory.newTransformer(xsltSrc);<B R>
//Make sure the XSL transformation's
is piped through to FOP <BR>
Result res = new SAXResult(driver.getContentHandler());<BR>
//Setup input<BR>
Source src =new StreamSource(new File("..\\DataFormat\\TestApduCatalog.xml"));<BR>
//Start the transformation and rendering process<BR>
transformer.transform(src, res);<BR><BR>
//Prepare response<BR>
response.setContentType("application/pdf");<BR>
response.setDateHeader("Expires",System.currentTim eMillis() + cacheExpiringDuration * 1000);<BR>
response.setContentLength(out.size());<BR>
//Send content to Browser<BR>
response.getOutputStream().write(out.toByteArray() );<BR>
response.getOutputStream().flush();<BR>
}<BR>
catch (Exception e)<BR>
{<BR>
System.out.println(e);<BR>
}<BR>
}
<BR>
}<BR>
Ich möchte einen Servlet als PDF-Datei anzeigen, die Transformation erfolgt über einen XML-Datei und einen XSLT-Datei, aber irgendwie kriege ich gar nichts zurück.
Hier ist meinen Source Code,wenn jemand mir helfen kann, wäre ich Ihn sehr dankbar....<BR>
import javax.servlet.*;<BR>
import javax.servlet.http.*;<BR>
import java.io.*;<BR>
//Java<BR>
import java.net.URL;<BR>
//JAXP<BR>
import javax.xml.transform.Transformer;<BR>
import javax.xml.transform.TransformerFactory;<BR>
import javax.xml.transform.Source;<BR>
import javax.xml.transform.Result;<BR>
import javax.xml.transform.stream.StreamResult;<BR>
import javax.xml.transform.stream.StreamSource;<BR>
import javax.xml.transform.sax.SAXResult;<BR>
//Avalon<BR>
import org.apache.avalon.framework.logger.ConsoleLogger;< BR>
import org.apache.avalon.framework.logger.Logger;<BR>
//FOP<BR>
import org.apache.fop.apps.Driver;<BR>
import org.apache.fop.apps.FOPException;<BR>
import org.apache.fop.messaging.MessageHandler;<BR>
import org.xml.sax.InputSource;<BR>
/**<BR>
* @author MEKAOUIR<BR>
*<BR>
* To change the template for this generated type comment go to<BR>
* Window>Preferences>Java>Code Generation>Code and Comments<BR>
*/<BR>
/*<BR>
* This sample applies the TestApduCatalog.xsl stylesheet to the<BR>
* TestApduCatalog.xml XML document, and returns the transformation<BR>
* output (HTML) to the client browser.<BR<BR>>
*<BR>
*/<BR>
public class PDFServlet extends HttpServlet<BR>
{<BR>
/**
* String representing the file separator characters for the System.
*/<BR>
public final static String FS = System.getProperty("file.separator");<BR>
protected Logger log;<BR>
protected TransformerFactory transformerFactory;<BR>
public void init() throws ServletException<BR>
{<BR>
this.log = new ConsoleLogger(ConsoleLogger.LEVEL_WARN);<BR>
this.transformerFactory = TransformerFactory.newInstance();<BR>
}<BR>
public void doGet(HttpServletRequest request, HttpServletResponse response)
<BR>throws ServletException, IOException, <BR>java.net.MalformedURLException
{<BR>
try<BR>
{<BR>
int cacheExpiringDuration = 0;<BR>
//Setup FOP<BR>
Driver driver = new Driver();<BR>
driver.setLogger(this.log);<BR>
driver.setRenderer(Driver.RENDER_PDF);<BR>
//Setup a buffer to obtain the content length<BR>
ByteArrayOutputStream out = new ByteArrayOutputStream();<BR>
driver.setOutputStream(out);<BR>
//Setup Transformer<BR>
Source xsltSrc =new StreamSource(new File("..\\DataFormat\\TestApdu.xslt"));<BR>
Transformer transformer =
this.transformerFactory.newTransformer(xsltSrc);<B R>
//Make sure the XSL transformation's
is piped through to FOP <BR>
Result res = new SAXResult(driver.getContentHandler());<BR>
//Setup input<BR>
Source src =new StreamSource(new File("..\\DataFormat\\TestApduCatalog.xml"));<BR>
//Start the transformation and rendering process<BR>
transformer.transform(src, res);<BR><BR>
//Prepare response<BR>
response.setContentType("application/pdf");<BR>
response.setDateHeader("Expires",System.currentTim eMillis() + cacheExpiringDuration * 1000);<BR>
response.setContentLength(out.size());<BR>
//Send content to Browser<BR>
response.getOutputStream().write(out.toByteArray() );<BR>
response.getOutputStream().flush();<BR>
}<BR>
catch (Exception e)<BR>
{<BR>
System.out.println(e);<BR>
}<BR>
}
<BR>
}<BR>