Подключение автономного клиента к Stateless SessionBean в Glassfish 3 - PullRequest
0 голосов
/ 17 января 2012

Я следовал инструкциям здесь , чтобы создать клиента для удаленного 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);
    }
  }
}

1 Ответ

0 голосов
/ 21 января 2012

Короткий ответ: для подключения к GF 3.x с клиента вам потребуется установить мини-стеклянную рыбку через Application Client Container (ACC) с использованием либо веб-запуска, либо сценария package-appclient.Откройте файл gf-client.jar и посмотрите на его путь к классам в файле манифеста.Там есть тонна файлов, перечисленных там.Это было похоже на GF 2.x, но, похоже, требовалось меньше зависимостей от клиента (хотя с этой версией было 15 МБ).

См. Эти:

Создать "Клиент приложения "с Maven в Java EE

С какими зависимостями maven я могу создать автономный клиент JMS для Glassfish?

http://docs.oracle.com/cd/E18930_01/html/821-2418/beakt.html#scrolltoc

http://docs.oracle.com/cd/E18930_01/html/821-2418/beakv.html#beakz

...