Hi there Group.
Not sure if anyone can help me with this here, but worth a shot.
I was hoping someone would be able to help me with some code that Ive
knocked up to test JDOM being used in a servlet.
Quick Synopsis:
Servlet gets hold of a stylesheet in its init() method and caches for
future reuse.The doGet() method then sets up a database connection, uses the
JDOMResultSetBuilder to get an XML representation of the record and uses
this as the XMLSource. A transformation is then done on the XMLSource and
I want this to be output to the browser for display.Everything compiles
OK, I have setup tomcat, webxml, and jar files appropriately and the
Servlet runs using http://127.0.0.1:8080/mywebapp/servlet/JDOMServlet.Many thanks for 
taking the time to read this. Much appreciated.
Rgds

JS


I'm not sure how right my code is, but it runs with no output. Here's the
code......
import javax.servlet.*;
import javax.servlet.http.*;

import javax.xml.transform.*;
import javax.xml.transform.dom.*;
import javax.xml.transform.stream.*;

import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
import org.jdom.transform.*;
import org.jdom.JDOMException;
import org.jdom.contrib.input.ResultSetBuilder;

import java.sql.*;
import java.io.*;
import java.io.IOException;
import java.lang.*;

public class JDOMServlet extends HttpServlet {

        private TransformerFactory tFactory =
        TransformerFactory.newInstance();        private String url = 
"jdbc:odbc:StudentDB";
        private ResultSet rs = null;
        private StreamSource xsltSource;

        public void init(ServletConfig config) throws ServletException {
                super.init(config);

                ServletContext context = config.getServletContext();
                try {
                        //Want to cache the stylesheet for future resuse
                        //then it doesnt have to be loaded constantly
                        xsltSource = new
                        
StreamSource(context.getResourceAsStream("/Web-Inf/viewStudentDetails.xsl"));//-------I
 think this is the problem line, it is LINE 35 ----------//
                        Templates templates =
                        tFactory.newTemplates(xsltSource);                }
                catch (TransformerConfigurationException tce) {
                        tce.printStackTrace();
                }

        }

        public void doGet(HttpServletRequest request, HttpServletResponse
        response)                throws ServletException, java.io.IOException {

                response.setContentType("text/html");

                //setup the database connection and use the
                ResultSetBuilder to generate                //a JDOM XML document of a 
students details
                try {
                        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                        Connection conn =
                        DriverManager.getConnection(url,"","");                        
Statement stmt = conn.createStatement();
                        System.out.println("Connected to database");

                        Namespace ns = Namespace.getNamespace("xhtml",
                        "http://w3.org/etc";);
                        rs = stmt.executeQuery("SELECT * FROM tblStudent
                        WHERE StudentID =                        9917217");            
           
                        System.out.println("Executing query:SELECT * FROM
                        tblStudent WHERE                        StudentID = 9917217"); 
                      
                        ResultSetBuilder builder = new
                        ResultSetBuilder(rs);                        Document doc = 
builder.build();
                        XMLOutputter xOutputter = new XMLOutputter("      
                         ", true);                        xOutputter.output(doc, 
System.out);

                        //get the JDOM document that was produced by the
                        JDOM ResultSetBuilder                        //and convert to 
a normal dom document for use by
                        the transformer                        processor               
        
                        org.jdom.output.DOMOutputter dOutputter = new                  
      org.jdom.output.DOMOutputter();                   
                            org.w3c.dom.Document domDocument =                        
dOutputter.output(doc);
                        Source xmlSource = new
                        javax.xml.transform.dom.DOMSource(domDocument);
                        //create the output result for the newly created
                        XSLT document                        //this will allow me to 
output the result to the
                        browser                        StreamResult result = new 
StreamResult
                        response.getOutputStream());                        //get the 
transformer
                        System.out.println("Preparing to create
                        Transformer");                        Transformer transformer =
                        tFactory.newTransformer(xsltSource);                        
//Do the transform
                        transformer.transform(xmlSource, result);
                }
                catch (Exception e)
                {
                        System.out.println(e.getMessage());
                }

        }
}


Here's what the tomcat logfile had to say......

java.net.MalformedURLException
        at java.net.URL.<init>(URL.java:613)
        at java.net.URL.<init>(URL.java:476)
        at java.net.URL.<init>(URL.java:425)
        at
        org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:740)
               at        
org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(XMLEntityManager.java:685)
               at        
org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(XMLDocumentScannerImpl.java:252)
               at        
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:503)
               at        
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:585)
               at        org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at
        org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1148)
               at        
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:983)
               at        JDOMServlet.init(JDOMServlet.java:35)
        at
        org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:919)
               at        
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:656)
               at        
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:401)
               at        
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
               at        javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
               at        
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
               at        
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
               at        
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)        at
        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)        
at
        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
               at        
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)
               at        
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
               at        
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)
               at        java.lang.Thread.run(Thread.java:536)
---------
java.net.MalformedURLException
        at java.net.URL.<init>(URL.java:613)
        at java.net.URL.<init>(URL.java:476)
        at java.net.URL.<init>(URL.java:425)
        at
        org.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:740)
               at        
org.apache.xerces.impl.XMLEntityManager.startDocumentEntity(XMLEntityManager.java:685)
               at        
org.apache.xerces.impl.XMLDocumentScannerImpl.setInputSource(XMLDocumentScannerImpl.java:252)
               at        
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:503)
               at        
org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:585)
               at        org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147)
        at
        org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1148)
               at        
org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:983)
               at        JDOMServlet.init(JDOMServlet.java:35)
        at
        org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:919)
               at        
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:656)
               at        
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:401)
               at        
org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:180)
               at        javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
        
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
               at        
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
               at        
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2349)
               at        
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:171)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
               at        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:646)
               at        
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:469)        at
        
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:644)
               at        
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:483)
               at        
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
        org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)        
at
        org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
               at        
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:376)
               at        
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
               at        
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:518)
               at        java.lang.Thread.run(Thread.java:536)
Connected to database
Executing query:SELECT * FROM tblStudent WHERE StudentID = 9917217
<?xml version="1.0" encoding="UTF-8"?>
<result>
        <entry>
                <StudentID>9917217</StudentID>
                <DCSCentralID>1</DCSCentralID>
                <FirstName>Jason</FirstName>
                <LastName>Smartt</LastName>
                <DateOfBirth>10 June 1976 00:00:00 o'clock BST</DateOfBirth>
                <TermtimeAddress>25 Oakwood Close, Burton,
                London</TermtimeAddress>                <TermtimePostCode>SE5 
3LS</TermtimePostCode>
                <PermanentAddress>15 West Wickham Road,
                Bromley</PermanentAddress>                <PermanentPostCode>BR4 
5TT</PermanentPostCode>
                <PermanentPhoneNumber>02074556789</PermanentPhoneNumber>
                <MobileTelephone>07987 654664</MobileTelephone>
                <EmailAddress>[EMAIL PROTECTED]</EmailAddress>
                <EntryQualifications>AAC</EntryQualifications>
                <YearOfEntry>1999</YearOfEntry>
                <YearOfGrad>2003</YearOfGrad>
                <CurrentStage>3</CurrentStage>
                <CandidateNumber>E08956</CandidateNumber>
                <LecturerID>TC01</LecturerID>
                <UCASCode>G4N2</UCASCode>
                <Photograph />
        </entry>
</result>

Preparing to create Transformer
javax.xml.transform.TransformerConfigurationException:
javax.xml.transform.TransformerException:
java.net.MalformedURLExceptionStoppingservice Internal Services




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to