Deployment FAQ

Here are answers to some frequently asked questions about deploying applications using SUN's Application Server implementations.   Additional resources can be found here.  Please send any follow-up questions or comments to

Why the annotations in my web application are not processed?

The most common cause for this is using an older version of web schema instead of web-app_2_5.xsd.  Please check your web.xml to see whether it references web-app_2_5.xsd.

<xsd:schema xmlns=""

Annotations are only processed for JavaEE5 deployment descriptors.

Why it tells me there is no ejb in my ejb jar?

A valid ejb jar should contain at least one Enterprise Java Bean.
1. For pre-JavaEE5 ejb application, ejb-jar.xml is a required. And you have to declare at least one ejb in the ejb-jar.xml.
2. In JavaEE5, you could either have an ejb-jar.xml declaring ejb(s) or you need to have one of the ejb component level annotations: @Stateful, @Stateless and @MessageDriven.  Note: @Entity is not an ejb component level annotation. The EJB30 entity beans are POJO instead of Enterprise Java Beans.

How do I deploy an application programmatically?

You could use JSR88 to deploy and undeploy an application programmatically.

Take a look at the jsr88 utility class we wrote for the unit test as an example: