我按照說明here創建了遠程SessionBean的客戶端。我在運行Glassfish 3.1.2 beta的同一臺機器上運行客戶端。當我使用GF-client.jar中從3.1.2測試版GlassFish中,我得到以下異常這是相同的異常,如果我離開了GF-client.jar中出類路徑:將獨立客戶端連接到Glassfish 3中的無狀態SessionBean
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
如果我使用一個來自Maven倉庫的3.1.1 gf-client.jar我得到一個巨大的堆棧跟蹤,抱怨它無法從Derby中找到一些我甚至沒有使用的.jar文件。顯然是版本不匹配問題。
有沒有人得到獨立的客戶端連接到Glassfish 3.1.2測試版? JavaEE 6中有這種變化嗎?
下面的代碼:
public class LoadTestClient {
static Logger logger = Logger.getLogger(LoadTestClient.class);
public static void main(String[] args) {
String jndiName = "java:global/locktest-0.0.1-SNAPSHOT/LockTestDeadlockService";
try {
LockTestDeadlockServiceI lockTestService =
(LockTestDeadlockServiceI) new InitialContext().lookup(jndiName);
logger.info("Got lockTestService Remote Interface");
} catch (NamingException e) {
logger.info("Failed to get lockTestService Remote Interface: " + e);
}
}
}