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 users@glassfish.dev.java.net.





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="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://java.sun.com/xml/ns/javaee"
            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified"
            version="2.5">

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:
http://fisheye5.cenqua.com/viewrep/glassfish/appserv-tests/devtests/deployment/util/JSR88Deployer.java