Monday, November 1, 2004

Further Adventures with Roller Weblogger


By Jeff Chilton

"Do not go where the path may lead; go instead where there is no path and leave a trail."

-- Ralph Waldo Emerson (American Author, 1803-1882)

When we last left our hapless hero (that's yours truly, for those of you who have not been following along at home), I had downloaded Roller, imported it into WebSphere Studio Application Developer, configured the database and the security, then launched the application in anticipation of watching that initial Roller home page light up my browser window.

The end result, however, was a resounding . . . (insert drum roll). . . nothing -- absolutely nothing happened. To add insult to injury, there wasn't any kind of useful information in the server log to explain why. The application just never started.

Between the minimal information available, and my own complete ignorance of what might be the genesis of such a condition, I felt compelled to revert back to my old slash and burn, trial and error, random acts of hacking methods. I just started ripping things out of the application, large chunks at a time, to see if I could pinpoint the offending element.

My theory, which later of course proved to be incorrect, was that one of the .jars in the WEB-INF/lib folder was somehow incompatible with something within WebSphere. My plan was to first locate it, then try to find a suitable replacement.

Binary Search

I embarked on a rudimentary binary search by taking out half of the .jars in the WEB-INF/lib folder to see if the application would attempt to start. I had no delusions that it would run in this configuration; I was just trying to figure out which element was causing it to not even attempt to get off the ground.

Whenever I would get it to actually attempt to start, I would take half of those items removed and put them back, basically working my way down, through a process of elimination, to the one .jar that contained the source of the problem. When it was all over I had my answer, but it wasn't any of the various OpenSource products employed by Roller. It was the rollerWeb.jar -- the roller application code itself.

Since there was no finding an alternate source for that particular artifact, I opened up the .jar and went through the same process, removing half of the contents at a time, trying to narrow down the possibilities until I could figure out just which element within the .jar was causing the problem.