Winstone/Hudson setup

zellster

Well-Known Member
#1
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.
 

zellster

Well-Known Member
#3
Cool! The little servlet engine hits two bugs in LSWS. ;)
Just uploaded 3.1 release with fixes, please download and try
http://www.litespeedtech.com/packages/3.0/lsws-3.1-std-i386-linux.tar.gz
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.
 

mistwang

LiteSpeed Staff
#4
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.
 

zellster

Well-Known Member
#5
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.
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.
 

mistwang

LiteSpeed Staff
#6
3.1 will be released soon, maybe next week.

is there any significant reason to prefer "servlet engine" over "proxy", given that Winstone and LSWS will be running on the same machine?
"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.
 
Top