Richard, I think the rule goes that you should avoid touching server.xml for something that web.xml can do.
On Sun, Jul 21, 2019 at 4:40 AM Richard Huntrods <huntr...@athabascau.ca> wrote: > > I apologise for top posting in advance, but just a quick update and > quicker question... > > After Konstantin found my typo, I tried editing the global web.xml file > (/conf/web.xml) . In my case, this is actually the file I want based on > the behaviour described by Konstantin as this entire tomcat instance is > for this one application and it's static web pages, so *everything* > needs to have the redirect. > > After fixing the typo, I tried it again and it works perfectly. > > So now I have two ways to accomplish what I want: > 1. Edit /conf/web.xml and add the lines. > > 2. Edit server.xml and add the RewriteValve line, then create > rewrite.config in /conf/Catalina/localhost. > > So my question - which is considered "more elegant" or better, more > appropriate appoach - the valve or the change to web.xml? > > I'm leaning towards the valve simply because I kind of like the whole > concept of valves, but if editing web.xml is just as good... ? > > Thanks, > > -Richard > > > On 7/20/2019 2:08 PM, Richard Huntrods wrote: > > Sorry for top-posting. It's the default with my mail program > > (thunderbird)... > > > > On 7/20/2019 11:27 AM, Konstantin Kolinko wrote: > >> сб, 20 июл. 2019 г. в 17:47, Richard Huntrods <huntr...@athabascau.ca>: > >>> OK. That was really weird. > >>> > >>> As I said in my message, following the directions on the web did NOT > >>> work. It didn't force redirection from http to https. > >>> > >>> What it DID end up doing was to kill the tomcat servlet application. > >>> Before the change it was working fine, and after the change it would > >>> only generate a 404 page. > >>> > >>> I reverted to the original /conf/web.xml, restarted tomcat and the > >>> servlet application is back up and running perfectly. > >>> > >>> So this code in /conf/web.xml affected the servlet but not the ROOT > >>> static web pages. > >> 1. The web.xml file and its behavior are defined in the Servlet > >> Specification. > >> > >> Some random instructions on the net have to be used carefully. > >> > >> 2. The web.xml file is the one in your web application > >> (WEB-INF/web.xml). > >> > >> The /conf/web.xml file provides defaults for all web applications, and > >> SHOULD not be edited. (The /conf/context.xml should not be exited as > >> well. That is another frequent error.). > >> > >> Those defaults are merged with the web.xml file of your web > >> application using merging rules defined in the Servlet Specification. > >> > >> There is an option, "logEffectiveWebXml" [1] that turns on logging of > >> the merged web.xml file. > > I still am having trouble understanding why the web application's > > WEB-INF/web.xml would be the appropriate place to put the change when > > I want to affect ROOT. I would have thought > > webapps/ROOT/WEB-INF/web.xml would have been the correct one. > >> > >> 3. Beware of typos. > >> > >> The tag "</web-recource-collection>" is misspelled. > > > > AARRRGGGGHHHH!!!! > > > > TYPOS!!!! > > > > And I checked that code several times before implementing it. Of > > course it wouldn't work 'as designed'. Ouch. > > > > I can clearly see why 'fixing stuff' using that code would generate > > the 404 errors I was seeing. That does prove I was editing the correct > > web.xml files, at least. Since the typo was in the block that then > > defined the url-pattern, messing that up would mess up everything. > > > > One person asked what the logs said. Nothing. Start up log was normal, > > access log was normal. > > > >> > >> There is an option, "xmlValidation" [1] that turns on automatic > >> validation of web.xml against the XML schema specified in that file. > >> > >> (Personally, I usually run with > >> org.apache.catalina.STRICT_SERVLET_COMPLIANCE=true > >> and that turns "xmlValidation" on as well). > >> > >> 4. Top-posting is bad. > > > > Again, sorry. In the end I solved it using a Rewritevalve instead of > > web.xml, and I think that may be the more elegant solution. Certainly > > it's cleaner - edit server.xml and add one file, rewrite.config. That > > takes care of everywhere; both the static pages I started wanting to > > fix, and also the servlet application which I discovered could be > > forced to run http when I was testing. This fixes all. > > > > One last point. I started this particular application for a client > > back in early 2001. At that time I was considered a maverick for > > choosing open source (Tomcat, MySQL) over the then-ubiquitous > > proprietary solutions "everyone" was using. I even got to speak at > > Unix user groups at the time, and even spoke at a CIPS meeting in > > August 2001 (Montreal, PQ, Canada) on the use of open source for > > enterprise solutions. > > > > Mostly folks simply didn't want to believe it could be done. > > > > Fast forward to 2019, when Tomcat & Mysql/MariaDB are now often the > > ubiquitous choices, with proprietary solutions are used mostly where > > upper management has bought the FUD. > > > > A lot has changed in Tomcat in that time; in Unix as well. I started > > with Solaris 8, then Solaris 10, and more recently Ubuntu. I love the > > way things have gotten better. > > > > More than that, I try to "keep up" with changes in security and > > overall robustness and best practices. I did just update from Tomcat > > 8.5.41 to 9.0.22 on Wednesday. It went without a hitch and took about > > 30 minutes total, including testing on the devel server. Basically it > > was easy because I try and keep things up to date. > > > > But... there are still places where legacy code lives in the > > application. Sadly, I'm one developer and it was a pretty big system. > > I tend to be proactive, but only if I think the benefit can really > > justify the time spent figuring it all out. > > > > Cheers, > > > > -Richard > > > >> [1] http://tomcat.apache.org/tomcat-9.0-doc/config/context.html > >> > >> Best regards, > >> Konstantin Kolinko > >> > > --- > This email has been checked for viruses by Avast antivirus software. > https://www.avast.com/antivirus > > -- > This communication is intended for the use of the recipient to whom it is > addressed, and may contain confidential, personal, and or privileged > information. Please contact us immediately if you are not the intended > recipient of this communication, and do not copy, distribute, or take action > relying on it. Any communications received in error, or subsequent reply, > should be deleted or destroyed. > --- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org