I was working with J2EE (specially EJB) from until 2003. because of J2EE performance issues and slow development I decide to switch to another solutions like lightweight containers.
After a while I chose Spring as a business framework and Hibernate as a ORM tool and in presentation layer Struts, WebWork and a little Tapestry.
From 2003 until 3 months ago Hibernate + Spring + (Webwork or Tapesty) was my favorites in all projects and I have very success story with these solutions.
About 3 months ago I was join to new team and began to work on a project with Java EE 5 standard specification again.
Weblogic has been chosen as an Application Server and JPA as a persistence mechanism.
Weblogic need high resources, and its not good for development environment.
we decide to chose another server for development environment. I began to test GlassFish and Geronimo.
there was a lot of problems during these tests and now I am really confused. I don't understand that what portability means in Java EE. what is standard in Java EE.
Here is a list of my problems
1 - JNDI naming is not standard in Java EE and each server has its naming convention for JNDI.
than you most change lookup code for each server.
2 - Hibernate does not understand Geronimo JTA Transaction and you most add some code to fix this issue.
3 - Open JPA (default JPA implementation in Geronimo) has its database model for OneToMany Relations. then you most change database and table relation for this server.
4 - Toplink (default JPA implementation for GlassFish) not support some kind of table mapping for class hierarchy.
5 - JAX WS Web Service Client for each server is unique. and you need to write deferent code for each server.
that was my Java EE tragic story.
No comments:
Post a Comment