Clarification: This only happens on a https connection, http connections are fine and work as they should.
> I'm running lots of old web content on new
> JBOSS/Tomcat container. Problem is: Scandinavic
> special characters like ä, ö are widely
> used in filenames. For some reason JBOSS/Tomcat
> doesn't really handle them right, it lists those
> files in server directories, but when clicked I get a
> 404 error.
> Changing all the filenames would be a terrible job.
> Any way to make this work? Anyone encountered this
Answering myself: There seems to be a bug in SSL implementation of either Tomcat 4.1.24 or jboss-tomcat 4.1.24 when it comes to handling URL addresses. Scandinavic characters cause it to fail, it also fails while serving some non-html content such as powerpoint slides.
I shut Jboss-tomcat down, downloaded new 4.1.27 tomcat version from jakarta pages, set up ssl using the same keystore and same configurations, and it works fine. Now I just gotta make Jboss and Tomcat co-operate as separate entities, or wait for Jboss to be integrated with 4.1.27 (if it solves the problem).
Tomcat 4.1.27 includes changes to the SSL implementation, mostly to allow the use of SSL encryption classes besides the standard Sun JSSE - which means you can use the IBM JDK and still have SSL support. This refactoring may have solved your problem.
Rather than waiting, you can try replacing the classes in your JBoss 3.2.x distribution by their counterparts in the Tomcat 4.1.27 distribution. I have tried this and it works with my applications and jmx-console. Anyway, try it and see if this solves your problem.
Thanks for a great idea. However, I tried to take a peek into JBOSS libraries and they seem too well integrated. I can't really find the web server specific .jars and even if I could see them, I would be slightly hesitant to replace them in case they've been customized. I searched jboss\lib as well as server\lib and find nothing that would point to catalina or other server .jars of tomcat.
So guess I'll have to wait. Fortunately I can run my system under plain tomcat at moment, since I'm not really using any outside-servlet-container stuff quite yet.
The embedded Tomcat distribution exists in a SAR in the deploy directory. In JBoss 3.2.0, the default instance would have it's Tomcat SAR in server/default/deploy/jbossweb-tomcat.sar. YMMV. It may now be called jbossweb-tomcat41.sar. In any case, you will see the Tomcat JARs you will need to replace in that directory. Remember to match up the ones you need to replace - don't dump everything from the standalone Tomcat in there.
Ohh, now I get it... Must have been blind!
Thanks for help, think I can do it now.
This still seems to be an issue, especially with current JBOSS 3.2.4RC1 which I just tried. Now it's happening on normal HTTP connections as well, not just HTTPS. To see the problem, you can create a web .war and put inside it html page with non-scandinavic symbols, for example index.html - and another with scandinavic symbols, for example indexä.html (or indexä.html if the first one doesn't show right on this page). Then try to reach both from web browser, using HTTPS connector if running release version of JBOSS, or just plain normal HTTP if using the latest RC1. The scandinavic char is automatically replaced by the %4E (or something similar) code or two of them, and I get 404 file not found.
This issue wasn't fixed by replacing the tomcat .jars. I can't seem to figure out why it does that. Standalone Tomcat runs fine with scandinavic chars in filename, Microsoft IIS used to run them fine while the content was under it. Hard to make all content producers change suddenly the filenames if it works with different servers.
Any ideas? Anyone else experienced this?