Я следовал инструкциям здесь , чтобы создать клиента для удаленного SessionBean.Я запускаю клиент на той же машине, на которой работает бета-версия Glassfish 3.1.2.Когда я использую gf-client.jar из бета-версии Glass.2 3.1.2, я получаю следующее исключение, которое является тем же исключением, если я оставляю gf-client.jar вне пути к классам:
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
ЕслиЯ использую 3.1.1 gf-client.jar из репозитория Maven. Я получаю огромную трассировку стека с жалобами на невозможность найти некоторые файлы .jar из Derby, которые я даже не использую.Видимо проблема несовпадения версий.
Кто-нибудь получил отдельный клиент для подключения к бета-версии Glassfish 3.1.2?Изменилось ли это в JavaEE 6?
Вот код:
@Stateless
public class LockTestDeadlockService implements LockTestDeadlockServiceI {
public int getP1Id() throws SQLException {
int parentId = -1;
return parentId;
}
}
@Remote
public interface LockTestDeadlockServiceI {
public int getP1Id() throws SQLException;
public void insertChildUpdateParent(int parentId) throws SQLException;
}
Вот мой клиент:
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);
}
}
}