2 votes

Connectez-vous à une instance JBoss AS7 en cours d'exécution à des fins de test.

J'ai déjà une phase de test d'intégration, lorsque j'ai exécuté les tests selenium. Je veux également exécuter quelques tests unitaires dans cette phase, parce que l'application est trop complexe et a beaucoup de dépendances entre ses modules (un enfer), donc, après une semaine de lutte contre OpenEJB et Arquillian, je crois que ce serait plus facile.

Le problème est le suivant : comment faire pour que ça marche ?

L'instance est déjà en cours d'exécution, mais si j'instancie un InitialContext et que j'essaie de rechercher un bean, j'obtiens une exception me disant que je n'ai pas défini l'attribut java.naming.initial.factory et je ne sais pas quoi mettre là-dedans.

Je me plains aussi des haricots annotés.

Supposons un haricot comme celui-ci :

@Stateless
public class ABeanImpl implements ABean {
  @EJB
  private BBean;
}

Est-ce que le conteneur obtiendra automatiquement le BBean ?

Merci d'avance

1voto

iskramac Points 698

Comment se connecter à JBoss 7.1 remote JNDI :

Voici l'extrait de code que j'utilise pour JBoss 7.1 :

Properties props = new Properties();
String JBOSS_CONTEXT = "org.jboss.naming.remote.client.InitialContextFactory";
props.put("jboss.naming.client.ejb.context", true);
props.put(Context.INITIAL_CONTEXT_FACTORY, JBOSS_CONTEXT);
props.put(Context.PROVIDER_URL, "remote://localhost:4447");
props.put(Context.SECURITY_PRINCIPAL, "jboss");
props.put(Context.SECURITY_CREDENTIALS, "jboss123");
InitialContext ctx = new InitialContext(props);

Résolution des références ejb ambiguës :

Selon Référence JBoss EJB 3 Si, à n'importe quel niveau de votre environnement EJB (EJB/EAR/Server), il y a des doublons dans les interfaces utilisées, une exception sera levée pendant la résolution des beans injectés.

Sur la base de ce qui précède, si vous avez obtenu une référence à EJB bean qui interface :

  • a deux implémentations dans votre module EJB (JAR/WAR) - une exception sera levée.
  • a deux implémentations dans votre application (d'autres JAR EJB dans le même EAR) - une exception sera levée.
  • a deux implémentations, l'une dans le module avec bean ABeanImpl le second, ailleurs - l'implémentation du module actuel est utilisée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X