![](https://secure.gravatar.com/avatar/5592487d2231fbe06ed2ac80d92c8f20.jpg?s=120&d=mm&r=g)
For what it's worth, I've included my servlet code underneath my signature. I'm still new to ABCL and this is just a quick hack, so beware, but it works for me. I auto-load the servlet, so the time for starting ABCL is not spent after the first request. On Jan 9, 2010, at 1:24 , Blake McBride wrote:
Greetings,
I am considering using ABCL as an extension language to a Web server app I have. I know the answer to many of the questions I have in choosing the correct extension language and ABCL seems to fit the bill well. I do have some questions, however.
-- Axel.Rauschmayer@ifi.lmu.de http://www.pst.ifi.lmu.de/~rauschma/ public class Service extends HttpServlet { private static final long serialVersionUID = 1L; private LispObject myFunction; public Service() { } @Override public void init(ServletConfig config) throws ServletException { Interpreter interpreter = Interpreter.createInstance(); File file = new File(config.getServletContext().getRealPath("/"), "WEB-INF/lisp/services.lisp"); interpreter.eval("(load \""+file+"\")"); org.armedbear.lisp.Package defaultPackage = Packages.findPackage("CL-USER"); this.myFunction = defaultPackage.findAccessibleSymbol("DISPATCH-JSON-RPC").getSymbolFunction(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String content = Files.readInputStream(request.getInputStream()); LispObject result = myFunction.execute(JavaObject.getInstance(content, true)); String str = (String) result.javaInstance(); Files.writeOutputStream(str, response.getOutputStream()); response.getOutputStream().close(); } }