I finally published my website to google app engine. This website is highly experimental and serve as my playing ground for java technologies. The current website as of the time of writing this blog is mainly to experiment with reading RSS feed using ROME.
There are quite a number of tweaking that I need to do in order to make my website run.
1. Rome throw an error: JDOM is unable to create SAX Parser
ROME behave perfectly fine when I tested it in Apache Tomcat 6. Some Google App Engine require me to include xercesImpl-2.6.2.jar and xmlParserAPIs-2.6.2.jar into the /WEB-INF/lib in order for ROME to work.
2. Disable Quartz cronjob
I use Quartz to schedule a cron job in my website. The cron job causes the following error:
org.springframework.web.servlet.FrameworkServlet initServletBean: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.scheduling.quartz.SchedulerFactoryBean#0' defined in ServletContext resource [/WEB-INF/springapp-servlet.xml]: Invocation of init method failed; nested exception is java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) .... Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355) at java.security.AccessController.checkPermission(AccessController.java:567) at java.lang.SecurityManager.checkPermission(Unknown Source)
3. Disable Last.FM API
I use Last.FM API to retrieve my playlist. I need to disable this feature because Last FM API create cache when it read our playlist and Google App Engine does not allow our application to write anything to the disk.
The website still has some errors that I never encounter when I deploy it in Tomcat 6. What about your experience with Google App Engine ?