[Last Call] Learn how to a build a cloud-first strategyRegister Now

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 295
  • Last Modified:

XSL transform Tomact

1 Solution
 What is the question?
bqchristieAuthor Commented:
I have a Jsp custom tag (code below).  When the tag is called i get an error saying that the class:
 javax.xml.transform.Source cannot be found.

in the WEB-APPS/myapp/WEB-INF/lib directory i have xalan.jar xml-apis.jar xerces.jar and xercesImpl.jar

what else is it looking for?  could there be a conflict? am i missing something?

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import org.jdom.output.DOMOutputter;
import org.jdom.transform.JDOMSource;
import org.w3c.dom.Document;
import java.io.File;
import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import org.jdom.transform.JDOMSource;
import org.jdom.transform.JDOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;
import java.util.*;
import com.dceg.actions.*;
import com.dceg.utils.*;
import java.sql.*;

public class RenderTable extends TagSupport{
  private NavigableList list = null;
  public int doStartTag() {
    try {
      NavigableList list = (NavigableList)pageContext.getSession().getAttribute(Constants.GAME_LIST);
      try {
        DOMOutputter outputter = new DOMOutputter();
        Document domXML = outputter.output(list.getXml());
        Source xmlSource = new DOMSource(domXML);
        Document domXSL = outputter.output(list.getXsl());
        Source xslSource = new DOMSource(domXSL);
        StreamResult xmlResult = new StreamResult(pageContext.getOut());
        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer(xslSource);
        transformer.transform(xmlSource, xmlResult);
      }catch(Exception e){
    } catch(Exception e) {

    return (TagSupport.EVAL_PAGE);
  public static void main(String[] args) {
 If it can find the rest fo the classes in the package (e.g. javax.xml.transform.Result) and not the Source class this means that you might be using an older version of the jar file. If it cannot find all of the specific classes in the package then this means that it cannot find the jar file. I would suggest you extract all the jar file's content's under the WEB-INF/lib folder or specify the path to explicitly look at each jar file.

  Hope it helps.
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

bqchristieAuthor Commented:
I tried that with no luck.  I am pretty stumped. Thanks
for trying.
bqchristieAuthor Commented:
i unjarred the xml-apis.jar in the common/classes folder and now get a differenet error.  

javax.servlet.ServletException: Provider for javax.xml.transform.TransformerFactory cannot be found
 It is probably a classpath problem but it is difficult to say without seeing your whole environment. Try to put manually all the jar file and class subdirectories into your classpath and try again... Apart from this I do not know what else I could think of...
I think it is not able to pick up ur Jars
pls set the classpath before starting tomcat
u should have all ur jars in the classpath
i think this will solve the problem
bqchristieAuthor Commented:
Thanks for the comment.  As it turns out I just grabbed the latest JAXP jars from javasoft and everything worked fine.  I am still a bit stumped though because everything was running fine under Tomcat 4.0.1.
 I guess every new release of a web server/Sevrlet engine has a bit different way to deal with loading the appropriate classes.
I have this problem, i solve it installing an replacing that .jar files for JAXP .jar files.
This jar files must be in the CLASSPATH
You can download JAXP from sun site.
bqchristieAuthor Commented:
Seems that updating with a newer version of the jar files did the trick.  

Featured Post

Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now