Utilisation de l'EDI NetBeans et du serveur Glassfish. Pour une raison quelconque, je ne peux pas injecter de DataSource (j'ai essayé un million de variations).Glassfish - Injection de ressources ne fonctionnant pas
private DataSource iserver;
@Resource(name="jdbc/iserver", type=DataSource.class)
public void setIServer(DataSource dataSource) {
this.iserver = dataSource;
}
(J'ai déjà essayé d'ajouter une annotation @Resource directement dans le champ). Le pool de connexion et des ressources de jdbc sont configurés sur Glassfish, et pour l'instant, j'ai ajouté le code de contournement (dans la même classe):
ctx = new InitialContext();
iserver = (DataSource) ctx.lookup("jdbc/iserver");
Le code de contournement fonctionne parfaitement. Je ne vois pas évident erreurs pertinentes dans le journal de Glassfish. Je ne vois, mais pas sûr qu'il est lié:
* nom ne peut pas être nul à l'javax.management.ObjectName.construct (ObjectName.java:405) * à javax.management.ObjectName (ObjectName.java.: 1403) à org.glassfish.admingui.common.handlers.ProxyHandlers.getRuntimeProxyAttrs (ProxyHandlers.java:289) à org.glassfish.admingui.common.handlers.ProxyHandlers.getProxyAttrs (ProxyHandlers.java:273) à ...
Des suggestions?
Merci pour votre réponse. Je suis totalement nouveau à cela - quand vous dites "assurez-vous que vous êtes dans un bean session", où exactement cela doit-il être spécifié (par exemple, est-ce que ma classe doit étendre SessionBean?) –
Injection ne fonctionne que si vous re dans un haricot de session pas un pojo (plain ol java objet). Donc, si vous vous injecter besoin d'être dans une classe qui implémente l'interface distante i.e. .: @Stateless (mappedName = "YourSessionBean") public class YourSessionBean implémente YourSessionRemote { – Preston
Merci beaucoup! J'apprécie la clarification. –