EJB JNDI поиск из режима разработки GWT в Glassfish v3 - PullRequest
2 голосов
/ 01 февраля 2010

Я пытаюсь выполнить поиск JNDI из режима GWT.

У меня есть локальный glassfishv3, на котором запущены EJB, которые я хочу посмотреть. Если я разверну GWT-Webapp в упомянутой стеклянной рыбке, все будет работать как положено. Но если я пытаюсь найти EJB-компоненты из devmode, я получаю следующее исключение:

javax.naming.NamingException: Lookup failed for 'myBean' in SerialContext  [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext  [Root exception is java.lang.NullPointerException]] ... Caused by: javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext  [Root exception is java.lang.NullPointerException]
        at com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:276)
        at com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:430)
        ... 22 more Caused by: java.lang.NullPointerException
        at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider (SerialContext.java:297)
        at com.sun.enterprise.naming.impl.SerialContext.getProvider (SerialContext.java:271)
        ... 23 more

Кажется, что встроенный причал не может найти класс "SerialContextProvider" в пути к классам.

Я пытался добавить gf-client.jar и glassfish-naming.jar в classpath (в дополнение к добавлению glassfish v3 к целевым средам выполнения в затмении), но безрезультатно.

Я даже собрал небольшой образец (найденный здесь: http://satansoft.de/jnditest/jnditest.tgz)), содержащий простой проект EJB, а также проект GWT, который выполняет поиск. В архиве также содержится небольшой клиент CLI, который прекрасно работает при запуске с gf-client.jar в classpath.

Я также задавал этот вопрос в официальном списке рассылки gwt, но никто там не смог мне помочь.

Итак: кто-нибудь смог выполнить поиск JNDI из GWT devmode в glassfish v3?

Ответы [ 3 ]

1 голос
/ 03 марта 2010

Добавьте все файлы jar из каталога модулей Glassfish в каталог war / WEB-INF / lib вашего проекта Eclipse GWT.

1 голос
/ 01 февраля 2010

Я не проверял это, но я не уверен, что Jetty поднимет все банки, на которые есть ссылки в манифесте gf-client.jar (см. GlassFish EJB FAQ или этот предыдущий ответ для более подробной информации). Поэтому, хотя я уверен, что этот JAR-файл хорошо работает при использовании автономного клиента (потому что я это тестировал), я не пробовал использовать встроенный Jetty.

Итак, попробуйте добавить следующие JAR-файлы вручную: glassfish-naming.jar, internal-api.jar, javax.ejb.jar, hk2-core.jar, auto-depends.jar, glassfish-api.jar.

0 голосов
/ 02 февраля 2010

Я не понимаю ваши настройки. Либо вы работаете в Glassfish, либо во встроенной пристани. Если вы работаете в Jetty, он не будет работать, поскольку вы работаете не на том сервере.

Я также использую сессионные компоненты и другую технологию J2EE в сочетании с GWT, и она работает очень хорошо.

Единственное, что вам нужно сделать, это НЕ запускать сервер Jetty. Я запускаю режим разработки с -noserver и запускаю на Glassfish. Если вы настроите это правильно, вы можете использовать DevMode, и код сервера работает в Glassfish. Развертывание немного сложнее, так как вам нужно убедиться, что сервер Glassfish обновлен.

...