============================================================ CONTENTS OF THIS DOCUMENT: o) HOW TO PROVIDE XSL TRANSFORMATIONS AS A WEB SERVICE o) HOW TO INVOKE TRANSLETS FROM AN ENTERPRISE JAVA BEAN ------------------------------------------------------------ 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). ------------------------------------------------------------ END OF README