Развернуть войну через NetBeans на Glassfish v3 бета - PullRequest
3 голосов
/ 24 октября 2009

Тот же файл .war прекрасно развертывается на Glassfish v2.1. Я не знаю, когда я в последний раз пробовал v3, но я хотел проверить функциональность горячего развертывания, поскольку, по слухам, он работает в NetBeans 6.8 с Glassfish v3. Итак, я развертываю как обычно и получаю следующую ошибку:

SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
....
SEVERE: Exception while loading the app
java.lang.RuntimeException: Unable to load EJB module.  DeploymentContext does not contain any EJB  Check archive to ensure correct packaging for c:\src\svn\trunk\gui\target\WEBAPP
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:134)
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:64)
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:153)
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:220)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:314)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:169)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1159)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1218)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1207)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:362)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:201)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:241)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:951)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.FixedThreadPool$BasicWorker.doWork(FixedThreadPool.java:431)
    at com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:410)
    at java.lang.Thread.run(Thread.java:619)

Я не понимаю, почему он жалуется на что-либо, связанное с EJB, так как это файл .war. Есть идеи?

ОБНОВЛЕНИЕ: Я подал ошибку с glassfish: https://glassfish.dev.java.net/issues/show_bug.cgi?id=10592. Либо это ошибка в glassfish, либо, по крайней мере, сообщение об ошибке не помогает в поиске проблемы. *

Ответы [ 4 ]

6 голосов
/ 24 января 2010

https://glassfish.dev.java.net/issues/show_bug.cgi?id=10592

Из ошибки:

Хорошо, нашел причину (большое спасибо за предоставление контрольного примера!):

  1. EjbSniffer был получен после сканирования архива: один (или несколько) из Библиотека JAR, упакованная в архив, содержит EJB-компоненты с аннотациями компонентов. Поэтому контейнеру ejb было предложено загрузить модуль позже.

  2. Контейнеру ejb не удалось найти соответствующие метаданные, поскольку web.xml версии 2.4, поэтому обработка метаданных пропустила аннотацию обработка (мы обрабатываем только аннотации для версий схемы Java EE 5+).

После того, как я изменил web.xml на схему 2.5 (вы также можете сделать схему 3.0): http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

Приложение успешно развернуто.

Пожалуйста, попробуйте и дайте мне знать, работает ли он для вас.

2 голосов
/ 27 января 2011

У меня есть схема 3_0, и я все еще получаю ошибку. Что еще интереснее, у меня есть две войны, одна из них - пример проекта из сварного архетипа, а другая - его настройка. Таможенная война не работает.

Я проверил бок о бок, это то же самое, за исключением большего количества классов моделей и большего количества свойств в persistence.xml

1 голос
/ 24 октября 2009

Кто-то, использующий аннотации @Stateless в ManagedBeans, сообщает об аналогичной проблеме на форумах java.net .

Я не знаю, относится ли это к вам, но данный обходной путь был:

Зайдите в консоль администратора, зайдите в центр обновлений и установите EJB.

Я сам не проверял, поэтому не могу подтвердить, что это поможет.

0 голосов
/ 01 марта 2011

Только мои $ 0,02 ...

У меня была такая же ошибка после добавления библиотеки JaxMe (версия 0.5.2) в мое приложение. Это вызвало сбой развертывания на одном из моих военных модулей - что, черт возьми, смутило меня, потому что я не вносил никаких изменений в этот модуль. Удаление JaxMe устранило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...