There are couple of reasons that need porting, the code will port as is:
1. The build scripts need porting because every App Server lays out their own libraries
2. The scripts include
ANT tasks to configure resources such as DataSource, JMS resource. Each app server handle in their own way.
3. For example, JBoss (not fully Java EE 5 compliant) does not support dependency injection in the client container or in the web container as yet so we need to change those to JNDI lookup code.
and many more issues we find when we try out in preview containers!