URLRewriteFilter Servlet Filter problem in WebSphere 6.1.0.5
I recently wrote up an article on SEO Friendly URL's for J2EE frameworks, while my tomcat implementations and WebSphere 5.1 implementations of the URLRewriteFilter were seemless, I ran into a problem on WebSphere 6.1 that caused me to rack my brain. The Output urls in the page were being rewritten fine, which is usually a gotcha if you forgot to response.encodeURL, but none of the inbound rules seemed to be rewriting back to the original url. In fact I was receiving a big fat 404 error and nothing in the console indicating that the URLRewrite Servlet Filter was not even being invoked. After several hours of Googling, I found that the guys over at Atlassian had run into the same problem with their products Jira and Confluence.
Apparently IBM made a change in 6.1.0.5 that is causing this problem:
WebSphere 6.1.0.5 and above checks if a URL is mapped to a servlet or a file before it puts a request through the filter chain. As we do not have a servlet or a file that is mapped to a URL:
http:///a/AZ/
WebSphere 6.1.0.5 sends a 404 to the user before giving the UrlRewrite filter a chance to redirect a URL to the correct place.
To make the filter invoke on a request without a servlet mapping you should be able to do the following in the WebSphere Admin Console:
- expand Servers -> Application Servers -> <server> -> Web Container Settings -> Web Container -> Custom Properties
- select New and then enter "com.ibm.ws.webcontainer.invokefilterscompatibility" as the property name and "true" as the value
- save the update and restart the server
Hopefully this explanation helps the WebSphere community with their SEO strategies by letting them rewrite their urls.
Endeca Discovery Conference 2007
In Boston last week for the Endeca Discovery Conference. Endeca is a fast-growing Boston-based company that produces a search and navigation engine that's being used by several major websites around the world, they're growing by leaps and bounds every year. They have a different spin when it comes to search, they call it "Guided Navigation," it's basically the concept of allowing the user to decide how they find information and guiding them along with attributes of that information displayed at relevant points in time and enabling a user multiple paths to that information while allowing a business to also provide contextual information and merchandising tied to that navigation.
Endeca is in their 5th year and has just released version 5.1.1 of their product, with 64-bit support, key enhancements to their WebStudio suite for business users, many-to-many relationships, and a slew of other improvements to their platform. At the conference Endeca also launched a user-community site for developers called Eden, http://eden.endeca.com. The developer site is just a shell at this point, with paragraphs describing solutions, but no real solutions. The site has potential and probably just needs time to grow, at this point it's a little frustrating, offering the hope of information with a lot of dead ends. Endeca also hinted at the conference at the future release of an Ajax framework called UICL, providing a Web 2.0 integration point with their navigation engine.
All in all it was great to be in Boston for a few days, the weather was beautiful and the sites were fantastic, however the content of the conference could have been compressed into a day, since the same concepts and features were repeated over and over.