Child pages
  • Embedding Flux as a Servlet
Skip to end of metadata
Go to start of metadata

The most common way users run Flux in an application server environment is to embed the engine in a servlet. Running Flux as a servlet allows you to easily integrate the engine into your application server environment and works well across all supported application servers.

Servlet Code

To run the engine in a servlet, you simply need:

  • an init() method to initialize the engine and its configuration
  • a destroy() method that shuts down Flux when the servlet shuts down

Typical code for running Flux in a servlet might look something like:

import flux.Engine;
import flux.Factory;
import flux.Configuration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class Servlet extends HttpServlet {

//   The Flux engine.
  private Engine flux;

//   Starts Flux when your servlet is initialized.  
  public void init() throws ServletException {

    try {
//      Start a Flux engine instance.//      First, create a factory.
      Factory fluxFactory = Factory.makeInstance();

//      Create Configuration.
      Configuration config = new Configuration();

//      Next, create a Flux instance.
      flux = fluxFactory.makeEngine(config);

//      Finally, start the Flux engine.
      flux.start();
    } // try
    catch (Exception e) {
      throw new ServletException(e.getMessage());
    } // catch

    System.out.println("*** Flux has been started. ***");

  } // init()

//  Shuts down Flux when your servlet is destroyed.
  public void destroy() {
    try {
//      Stop Flux and release its resources.
      flux.dispose();
    } // try
    catch (Exception e) {
      e.printStackTrace();
    } // catch
  } // destroy()

  public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    doPost(request, response);
  } // doGet

  public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    PrintWriter out = response.getWriter();
    try {
      response.setContentType("text/plain");
      out.println("Flux has been started in this servlet\!");
    } // try
    catch (Exception e) {
      out.println("An error occured.");
      e.printStackTrace(out);
    } // catch
  } // doPost()
} // class Servlet

 

 

JBoss

You must disable RESTEasy in JBoss AS 7 as explained in https://issues.jboss.org/browse/JBAS-8830.

You may need to copy the flux.jar file to your JBoss deployment lib directory (for example: '/jboss-as-7.1.1.Final/jboss-as-7.1.1.Final/standalone/deployments/Flux.war/WEB-INF/lib').

  • No labels