2017-08-01 1 views
3

I ont un récipient qui contient une classe définie comme @StatelessEssayer d'instancier un bean avec le CDI d'un webapplication exécutant

@Stateless 
public class TestBean() { 
    @Inject 
    AnotherBean bean2; 
    public String getThis() { 
     return bean2.getAString(); 
    } 
} 

A webapplication (avec une dépendance sur ce pot) fonctionnant sur wildfly 10.1.0 aimerait instancier ce bean et utiliser ses méthodes. La méthode d'appel webapplication peut être un point de terminaison (appelé par une autre application Web) ou simplement une méthode java régulière.

Quelle est la meilleure façon d'instancier TestBean? J'ai essayé plusieurs solutions qui ne fonctionnent pas.

Par exemple celui-ci

Building a CDI 2 standalone

et celui-ci

Does CDI work for regular Java application?

Je suis nouveau à la CDI et comment il fonctionne, je me demande si cela est bien expliqué quelque part?

+0

-t-il un fichier 'beans.xml'? –

+0

Oui, un beans.xml est défini pour analyser tous les beans. – JennyToy

Répondre

0

Son pas vraiment clair ce que votre question est, mais si vous avez des ressources JAX-RS, dans le fichier WAR, cela devrait fonctionner

@Path("/somePath") 
@RequestScoped 
public class SomeResource { 
    @Inject 
    private TestBean testBean; 
    @GET 
    public String doGet() { 
     return testBean.getThis(); 
    } 
} 
+0

La question est de savoir s'il existe un moyen d'instancier SomeResource et d'appeler doGet sans être un point de terminaison REST. Juste une méthode java API simple. – JennyToy