<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>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.</div><div><br></div><div><div>On Jan 9, 2010, at 1:24 , Blake McBride wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Greetings,<div><br></div><div>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.</div>
</blockquote></div><div><br></div><div>
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">-- </div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:Axel.Rauschmayer@ifi.lmu.de">Axel.Rauschmayer@ifi.lmu.de</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="http://www.pst.ifi.lmu.de/~rauschma/">http://www.pst.ifi.lmu.de/~rauschma/</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span>
</div>
<div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; "><span style="color: #910a69">public</span> <span style="color: #910a69">class</span> Service <span style="color: #910a69">extends</span> HttpServlet {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(145, 10, 105); "><span style="color: #000000">    </span>private<span style="color: #000000"> </span>static<span style="color: #000000"> </span>final<span style="color: #000000"> </span>long<span style="color: #000000"> </span><span style="color: #2e00cc">serialVersionUID</span><span style="color: #000000"> = 1L;</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    <span style="color: #910a69">private</span> LispObject <span style="color: #2e00cc">myFunction</span>;</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    <span style="color: #910a69">public</span> Service() {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(119, 119, 119); "><span style="color: #000000">    </span>@Override</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    <span style="color: #910a69">public</span> <span style="color: #910a69">void</span> init(ServletConfig config) <span style="color: #910a69">throws</span> ServletException {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        Interpreter interpreter = Interpreter.createInstance();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        File file = <span style="color: #910a69">new</span> File(config.getServletContext().getRealPath(<span style="color: #5100ff">"/"</span>), <span style="color: #5100ff">"WEB-INF/lisp/services.lisp"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        interpreter.eval(<span style="color: #5100ff">"(load \""</span>+file+<span style="color: #5100ff">"\")"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        org.armedbear.lisp.Package defaultPackage = Packages.findPackage(<span style="color: #5100ff">"CL-USER"</span>);</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        <span style="color: #910a69">this</span>.<span style="color: #2e00cc">myFunction</span> = defaultPackage.findAccessibleSymbol(<span style="color: #5100ff">"DISPATCH-JSON-RPC"</span>).getSymbolFunction();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; "><br></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    <span style="color: #910a69">protected</span> <span style="color: #910a69">void</span> doPost(HttpServletRequest request,</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">            HttpServletResponse response) <span style="color: #910a69">throws</span> ServletException, IOException {</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        String content = Files.readInputStream(request.getInputStream());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        LispObject result = <span style="color: #2e00cc">myFunction</span>.execute(JavaObject.getInstance(content, <span style="color: #910a69">true</span>));</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        String str = (String) result.javaInstance();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        Files.writeOutputStream(str, response.getOutputStream());</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">        response.getOutputStream().close();</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">    }</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; ">}</div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 11px;"><br></span></font></div></body></html>