使用NetBeans IDE和Glassfish服務器。出於某種原因,我無法獲得注入的數據源(已嘗試過一百萬個變體)。Glassfish - 資源注入不起作用
private DataSource iserver;
@Resource(name="jdbc/iserver", type=DataSource.class)
public void setIServer(DataSource dataSource) {
this.iserver = dataSource;
}
(我已經嘗試將@Resource註釋直接添加到字段中)。連接池和JDBC資源是在Glassfish的配置,並暫時,我已經添加了解決方法的代碼(在同一個班):
ctx = new InitialContext();
iserver = (DataSource) ctx.lookup("jdbc/iserver");
解決方法的代碼完美的作品。我在Glassfish日誌中看不到任何明顯的相關錯誤。我確實看到了這一點,但不知道它的關聯:
* 名稱不能javax.management.ObjectName.construct(ObjectName.java:405)爲空*在javax.management.ObjectName的(ObjectName.java: 1403)at org.glassfish.admingui.common.handlers.ProxyHandlers.getRuntimeProxyAttrs(ProxyHandlers.java:289)at org.glassfish.admingui.common.handlers.ProxyHandlers.getProxyAttrs(ProxyHandlers.java:273)at ...
有什麼建議嗎?
感謝您的答覆選擇選項
"name"
。我完全不熟悉這一點 - 當你說「確保你在會話bean中」時,需要指定哪些內容(例如,我的課程是否必須擴展SessionBean?) – 2010-11-15 00:37:28注入只在你'在會話bean中不是pojo(普通的java對象)。所以,如果你注射你需要在一個實現你的遠程接口類 即: @Stateless(mappedName =「YourSessionBean」) 公共類YourSessionBean實現YourSessionRemote { – Preston 2010-11-15 16:28:14
非常感謝!我讚賞澄清。 – 2010-11-15 23:13:35