SeamFramework.orgCommunity Documentation

Capitolo 16. Application Server ed ambienti supportati da Web Beans

16.1. Usare Web Beans con JBoss AS
16.2. Glassfish
16.3. Servlet Containers (such as Tomcat or Jetty)
16.3.1. Tomcat
16.4. Java SE
16.4.1. Module Web Beans SE

Non occorre alcuna configurazione speciale dell'applicazione oltre all'aggiunta di META-INF/beans.xml o WEB-INF/beans.xml.

Se si usa JBoss AS 5.0.1.GA allora occorre installare Web Beans come extra. Innanzitutto occorre dire a Web Beans dove si trova JBoss. Modificare jboss-as/build.properties ed impostare la proprietà jboss.home. Per esempio:

jboss.home=/Applications/jboss-5.0.1.GA

Ora installiamo Web Beans:

$ cd webbeans-$VERSION/jboss-as
$ ant update

Web Beans è incluso in tutte le release di JBoss AS da 5.1 in avanti.

DA FARE

Web Beans can be used in any Servlet container such as Tomcat 6.0 or Jetty 6.1.

Web Beans should be used as a web application library in a servlet container. You should place webbeans-servlet.jar in WEB-INF/lib. webbeans-serv;et.jar is an "uber-jar" provided for your convenience. Instead, you could use its component jars:

You also need to explicitly specify the servlet listener (used to boot Web Beans, and control its interaction with requests) in web.xml:

<listener>
   <listener-class
>org.jboss.webbeans.environment.servlet.Listener</listener-class>
</listener
>

Oltre alla migliorata integrazione dello stack Java Enterprise, Web Beans fornisce anche uno stato dell'arte typesafe, con dependency injection stateful . Questo è utile in un ampio raggio di applicazioni tipo, enterprise o altre. Per facilitare ciò, Web Beans fornisce semplici mezzi per eseguire in ambiente Java Standard Edition indipendentemente da qualsiasi caratteristica Enterprise Edition.

Eseguendo in ambiente SE sono disponibili le seguenti caratteristiche di Web Beans:

Per semplificare la vita agli sviluppatori Web Beans fornisce un modulo speciale con un metodo main che avvia il manager Web Beans, registrando automaticamente tutti i Web BEans semplici trovati nel classpath. Questo elimina il bisogno da parte degli sviluppatori di scrivere codice per il bootstrap. L'entry point per le applicazioni Web Beans SE è un semplice Web Bean che osserva l'evento standard @Deployed Manager. I parametri da linea di comando possono essere iniettati usando una delle seguenti:

@Parameters List<String

> params;
@Parameters String[] paramsArray; // useful for compatability with existing classes

Ecco un esempio di una semplice applicazione Web Beans SE:

@ApplicationScoped

public class HelloWorld
{
    @Parameters List<String
> parameters;
    public void printHello( @Observes @Deployed Manager manager )
    {
        System.out.println( "Hello " + parameters.get(0) );
    }
}

Le applicazioni Web Beans SE vengono avviate eseguendo il seguente metodo main.

java org.jboss.webbeans.environments.se.StartMain <args

>

Se occorre fare una qualsiasi inizializzazione personalizzata del manager Web Beans, per esempio registrando i contesti personalizzati o inizializzando le risorse dei bean, si può fare questo in risposta all'evento @Initialized Manager. Il seguente esempio registra un contesto personalizzato:

public class PerformSetup

{
    public void setup( @Observes @Initialized Manager manager )
    {
        manager.addContext( ThreadContext.INSTANCE );
    }
}