============================================================ CONTENTS OF THIS DOCUMENT: o) HOW TO PROVIDE XSL TRANSFORMATIONS AS A WEB SERVICE o) HOW TO INVOKE TRANSLETS FROM AN ENTERPRISE JAVA BEAN o) TIPS FOR RUNNING THE SAMPLE ON JBOSS-3.0.4_TOMCAT-4.1.12 ------------------------------------------------------------ HOW TO PROVIDE XSL TRANSFORMATIONS AS A WEB SERVICE With XSLTC, XSL transformations can be run from within a an Enterprise Java Bean (EJB) and exported through a servlet. This sample code demonstrates how that can be implemented. The CompiledServlet and CompiledBrazil sample code demonstrate other approaches to providing XSL transformations as a web service. ------------------------------------------------------------ HOW TO INVOKE TRANSLETS FROM AN ENTERPRISE JAVA BEAN o) Create an EJB that implements SessionBean and has a single transform() entry point: public class TransformBean implements SessionBean { public String transform(String document, String transletName) { // instanciate translet // build internal DOM // run transformation : : } : : } o) Create this EJB's remote interface (this is the interface your servlet will use to call the bean's entry point): public interface TransformRemote extends EJBObject { public String transform(String document, String transletName) throws RemoteException; } o) Create the EJB's home interface, which your servlet will use to instantiate the remote interface: public interface TransformHome extends EJBHome { TransformRemote create() throws CreateException, RemoteException; } o) Create a servlet that uses the EJB's home interface to create a remote interface to the EJB, and then calls the EJB's transform() method through that remote interface: public class TransformServlet extends HttpServlet { public void init(ServletConfig config) { // look up the EJB's home interface using JNDI } public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // create the remote interface // pass the parameters from teh request to the EJB // display results passed back from EJB } } o) Set up your J2EE_CLASSPATH to include JAXP and the XSLTC runtime jars. o) Compile your XSL stylesheets and place them either in your J2EE_CLASSPATH or wrap them in your EJB jar. Make sure that the XSLTC TransformerFactory will be used by either setting the system property "javax.xml.transform.TransformerFactory" with the value "org.apache.xalan.xsltc.trax.TransformerFactoryImpl", or by making a file with the name "META-INF/services/javax.xml.transform.TransformerFactory" containing the single line org.apache.xalan.xsltc.trax.TransformerFactoryImpl available on your J2EE_CLASSPATH. o) Deploy your EJB o) Call the servlet with the necessary parameters (at least an URI to the source XML document and the name of the translet class). ------------------------------------------------------------ TIPS FOR RUNNING THE SAMPLE ON JBOSS-3.0.4_TOMCAT-4.1.12 o) Copy the bundled xalan.jar (a version containing XSLTC) to %Jboss_Home%/server/default/lib directory. o) Put the translet .class file in the same directory as the EJB classes. o) Set the value of the "translet" parameter to the name of the translet .class o) Set the value of the "document" parameter to a valid xml URI ------------------------------------------------------------ END OF README