The intent of the site is simple. Allow a way for people to subscribe to the newsletter, and allow my friend to issue newsletters notifying the subscribers that that the algorithm has predicted a change.
Being a native Java guy, I chose to use Java to develop the site. Since my friend had registered a domain with GoDaddy, I told him to just get the GoDaddy shared Tomcat hosting service. I now believe that was a mistake. Here are some of the things I've found along the way:
- Although GoDaddy advertises that they support Java 1.5, the JSP compiler defaults to 1.4. You have to specify an alternate compiler for your JSP files in web.xml if you want to use 1.5
- You cannot restart your container. The server recycles once a night, that's it. This makes deployments of code/upgrades difficult, since changes to .jar files will only be recognized the next day.
- While GoDaddy claims that you can use any Java library, just drop the .jar file into WEB-INF/lib/ and the changes will be picked up when the server restarts. This is not the case. I originally implemented the site using Hibernate, but when I deployed to the server on GoDaddy, I received an issue when trying to read in the configuration file. When I submitted a support request, the response was simply, "We don't support Hibernate".
- There doesn't seem to be any way to view Tomcat error files. When I turned on error logging, it showed me the APACHE logs, but not the Tomcat logs. I had to roll my own logging system in the end.
The net result of this rather poor policy is that if you use any library in your application, you will not be guaranteed that it will work until you try to deploy it. That's a broken model to me.
In the future, I'm going to recommend that my clients do NOT use GoDaddy, especially their shared hosting. I will be finding a way to migrate this friend off their service as well.