|
One new important observation: In fact hudson starts. For example it creates files and directories in its homedir. I'm just unable to open its web interface (HTTP 404 NOT FOUND). Jieryn, thank you for advice. I'v set log level to ALL, there are tomcat logs: catalina.out hudson home directory: /var/lib/hudson
catalina.err Jun 10, 2010 6:54:51 PM org.apache.catalina.core.AprLifecycleListener init INFO: Loaded APR based Apache Tomcat Native library 1.1.20. Jun 10, 2010 6:54:51 PM org.apache.catalina.core.AprLifecycleListener init INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. Jun 10, 2010 6:54:51 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 627 ms Jun 10, 2010 6:54:51 PM org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina Jun 10, 2010 6:54:51 PM org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.0-RC4 Jun 10, 2010 6:54:51 PM org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor manager.xml from /var/lib/tomcat/conf/Catalina/localhost Jun 10, 2010 6:54:51 PM org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor hudson.xml from /var/lib/tomcat/conf/Catalina/localhost Jun 10, 2010 6:54:52 PM org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor ROOT.xml from /var/lib/tomcat/conf/Catalina/localhost Jun 10, 2010 6:54:52 PM org.apache.coyote.http11.Http11AprProtocol init INFO: Initializing Coyote HTTP/1.1 on http-8080 Jun 10, 2010 6:54:52 PM org.apache.coyote.http11.Http11AprProtocol start INFO: Starting Coyote HTTP/1.1 on http-8080 Jun 10, 2010 6:54:52 PM org.apache.coyote.ajp.AjpAprProtocol init INFO: Initializing Coyote AJP/1.3 on ajp-8009 Jun 10, 2010 6:54:52 PM org.apache.coyote.ajp.AjpAprProtocol start INFO: Starting Coyote AJP/1.3 on ajp-8009 Jun 10, 2010 6:54:52 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 1178 ms Jun 10, 2010 6:55:00 PM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: init: Associated with Deployer 'Catalina:type=Deployer,host=localhost' Jun 10, 2010 6:55:00 PM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: init: Global resources are available Jun 10, 2010 6:55:00 PM org.apache.catalina.core.ApplicationContext log INFO: HTMLManager: list: Listing contexts for virtual host 'localhost' Jun 10, 2010 6:55:35 PM org.apache.coyote.http11.Http11AprProtocol pause INFO: Pausing Coyote HTTP/1.1 on http-8080 Jun 10, 2010 6:55:35 PM org.apache.coyote.ajp.AjpAprProtocol pause INFO: Pausing Coyote AJP/1.3 on ajp-8009 Jun 10, 2010 6:55:36 PM org.apache.catalina.core.StandardService stopInternal INFO: Stopping service Catalina Jun 10, 2010 6:55:36 PM org.apache.coyote.http11.Http11AprProtocol destroy INFO: Stopping Coyote HTTP/1.1 on http-8080 Jun 10, 2010 6:55:36 PM org.apache.coyote.ajp.AjpAprProtocol destroy INFO: Stopping Coyote AJP/1.3 on ajp-8009 localhost_access_log.2010-06-10.txt 127.0.0.1 - z [10/Jun/2010:18:55:00 +0100] "GET /manager/html/ HTTP/1.1" 200 11308 127.0.0.1 - - [10/Jun/2010:18:55:30 +0100] "GET /hudson HTTP/1.1" 302 - 127.0.0.1 - - [10/Jun/2010:18:55:30 +0100] "GET /hudson/ HTTP/1.1" 404 982 I gave this a try on Tomcat-7.0-RC4 and it seems that something strange is going on with the main welcome page. I can access other pages in Hudson just fine, e.g. http://localhost:8080/hudson/manage Also, this exact version, 1.361, works fine on Tomcat-6.0.18. Someone more familiar with Hudson's crazy bootstrapping is going to need to get involved. There may be crazy parts of Hudson bootstrapping <servlet-mapping> <servlet-name>Stapler</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> which should map everything to stapler for handling.. According to the servlet 2.5 spec section SRV.11.2,
So I claim that '/' is valid according to the servlet spec. I have also reported it in tomcat bugzilla, see https://issues.apache.org/bugzilla/show_bug.cgi?id=49422 Tomcat closed that issue as INVALID, they believe they are strictly adhering to the specification. Specification debates aside, is there some reason we can not just migrate to /* ? I tested this in Tomcat 7 and it works properly, but did not check embedded Winstone, or any other popular containers. Tomcat 7 has some unusual naming conventions for its releases, but they just announced a 7.0-BETA. The release manager stated that he'd like to get the first stable release out in 4 weeks or less. http://www.tomcatexpert.com/blog/2010/06/29/apache-tomcat-7-has-been-released So I expect we're going to see a lot more Hudson users deploying to Tomcat 7 soonish... I still don't agree that this is our fault, and I've updated https://issues.apache.org/bugzilla/show_bug.cgi?id=49422 But in the mean time, I guess it'd wise to work around this issue in Hudson. I'll try the "empty welcome file list" approach that Mark suggested to see if that does the trick, as that seems least likely to cause regressions with other containers. Code changed in hudson Using a proxied Winstone with Security Realm set to "Delegate to servlet container", I had to restore: <servlet-mapping> <servlet-name>Stapler</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ... otherwise (with /*) hudson.security.BasicAuthenticationFilter::doFilter() works with an empty path, with the effect that my browser faces a infinite redirect loop. This is no surprise, according to javax.servlet.http.HttpServletRequest::getServletPath(): Returns:
a String containing the name or path of the servlet being called, as specified in the request URL, decoded, or an empty string if the servlet used to process the request is matched using the "/*" pattern.
Interestingly, I'm referring to Tomcat 7 hosted Servlet documentation: http://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/http/HttpServletRequest.html#getServletPath%28%29 In my opinion, the workaround should be reverted since it comes from a misinterpretation. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Please set all Tomcat logging to FINEST.
http://tomcat.apache.org/tomcat-6.0-doc/logging.html
I don't think I've read anything about Tomcat 7 changing the way it is configured for logging so the 6.x docs should work.