Winstone/Hudson setup

Discussion in 'Java JSP/Servlet' started by zellster, Apr 25, 2007.

  1. zellster

    zellster New Member

    Hello,

    I am trying to run Hudson (https://hudson.dev.java.net/) behind LiteSpeed 3.0.3 Std/Linux. Release .104 of Hudson comes bundled with a small servlet engine named Winstone (http://winstone.sourceforge.net/).

    Example usage:
    java -jar hudson.war --prefix=/hudson

    I first tried to configure LSWS with a servlet context over AJP. However, Winstone complains of the following:

    [Winstone 2007/04/24 16:33:53] - Error within request handler thread
    java.lang.StringIndexOutOfBoundsException: String index out of range: 41026
    at java.lang.String.checkBounds(String.java:402)
    at java.lang.String.<init>(String.java:443)
    at winstone.ajp13.Ajp13IncomingPacket.readString(Ajp13IncomingPacket.java:270)
    at winstone.ajp13.Ajp13IncomingPacket.parsePacket(Ajp13IncomingPacket.java:185)
    at winstone.ajp13.Ajp13Listener.allocateRequestResponse(Ajp13Listener.java:178)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:79)
    at java.lang.Thread.run(Thread.java:619)

    Next, I tried to configure LSWS with a web proxy. Unfortunately, Winstone does not provide a Content-Length header. LSWS seems to provide an empty page to the end-user in that case, even if the back-end supplies content.

    Is there an easy way to fix either of the above situations without touching Winstone?

    Thanks.
  2. mistwang

    mistwang LiteSpeed Staff

  3. zellster

    zellster New Member

    Things look good! I did not notice any errors when running Winstone 0.9.8 as an external proxy but did see the following with AJP (JDK 6u1):

    [Winstone 2007/04/25 14:50:06] - Error within request handler thread

    winstone.WinstoneException: Invalid AJP header
    at winstone.ajp13.Ajp13IncomingPacket.<init>(Ajp13IncomingPacket.java:59)
    at winstone.ajp13.Ajp13Listener.allocateRequestResponse(Ajp13Listener.java:164)
    at winstone.RequestHandlerThread.run(RequestHandlerThread.java:79)
    at java.lang.Thread.run(Thread.java:619)

    Thanks for the quick turnaround.
  4. mistwang

    mistwang LiteSpeed Staff

    I noticed that as well, after some investigations, I found that Winstone always dumps this error whenever the the AJP connection was closed by LSWS, like when LSWS restarts. I think it is normal and does not really affect anything.
  5. zellster

    zellster New Member

    Great. When will 3.1 be officially released? One other quick question: is there any significant reason to prefer "servlet engine" over "proxy", given that Winstone and LSWS will be running on the same machine?

    Thanks.
  6. mistwang

    mistwang LiteSpeed Staff

    3.1 will be released soon, maybe next week.

    "servlet engine" should be a bit faster than "Proxy", but is also depends on winstone implemenation. one big difference is that winstone cloase HTTP connection for each request, but keep the AJP connection persistent. So, "servlet engine" should be a better choice, performance wise.

Share This Page