0

J'essaie d'utiliser javaws en jeu 2.4 pour que j'ai ajouté javaws à la dépendanceJouer 2.4.2 javaws donnant null

ensuite ajouté @Inject static WSClient ws; à mon contrôleur.

Mais le problème est que si je

Logger.info(ws); 

dans ma méthode du contrôleur d'impression son null dans la console. Je ne peux pas sembler comprendre le problème parce que si c'est le problème de dépendance alors WsClient ne sera pas importé.

Y at-il quelque chose qui me manque?

Répondre

1

Selon le Guice documentation l'utilisation de l'injection statique n'est pas recommandée et il devrait être une raison particulière de l'utiliser. Pour utiliser l'injection statique, vous devez ajouter au module configure les éléments suivants:

requestStaticInjection(WSClient.class); 

Mais au lieu que je suggère simplement de supprimer les parasites de WSClient ws.

Il est préférable d'utiliser Provider injection à la place. Dans ce cas, WSClient ne sera instancié que lorsqu'il est vraiment nécessaire. Pour injecter:

@Inject 
private Provider<WSClient> wsProvider; 

Pour créer WSClient:

WSRequest request = wsProvider.get().url("url"); 

Par ailleurs, si vous voulez parler de test unitaire du contrôleur, l'injection directe de WSClient peut être problématique.

Vous pouvez en lire plus dans ce post sur l'injection dans Play; malgré que le post se réfère à Play 2.5, toutes les idées sont similaires pour 2.4 également.