Проблема с запуском простого приложения EJB

В настоящее время я запускаю простое приложение EJB с использованием сеансового компонента без сохранения состояния. Я работаю над NetBeans 6.8 с Personal Glassfish 3.0 и установил в своей системе как Java EE, так и Java SE. Я не знаю, актуально ли это, но я использую 64-битную версию Windows7. Сессионный компонент, который я реализовал, имеет только один метод sayHello(); который просто печатает приветствие на экране. Когда я пытаюсь запустить приложение, я получаю следующую ошибку:

pre-init:
init-private:
init-userdir:
init-user:
init-project:
do-init:
post-init:
init-check:
init:
deps-jar:
deps-j2ee-archive:
MyEnterprise-app-client.init:
MyEnterprise-ejb.init:
MyEnterprise-ejb.deps-jar:
MyEnterprise-ejb.compile:
MyEnterprise-ejb.library-inclusion-in-manifest:
MyEnterprise-ejb.dist-ear:
MyEnterprise-app-client.deps-jar:
MyEnterprise-app-client.compile:
MyEnterprise-app-client.library-inclusion-in-manifest:
MyEnterprise-app-client.dist-ear:
MyEnterprise-ejb.init:
MyEnterprise-ejb.deps-jar:
MyEnterprise-ejb.compile:
MyEnterprise-ejb.library-inclusion-in-manifest:
MyEnterprise-ejb.dist-ear:
pre-pre-compile:
pre-compile:
do-compile:
post-compile:
compile:
pre-dist:
post-dist:
dist-directory-deploy:
pre-run-deploy:
Starting Personal GlassFish v3 Domain
Personal GlassFish v3 Domain is running.
Undeploying ...
Initializing...
Initial deploying MyEnterprise to C:\Users\Naqsam\Documents\NetBeansProjects\MyEnterprise\dist\gfdeploy\MyEnterprise
Completed initial distribution of MyEnterprise
post-run-deploy:
run-deploy:
run-display-browser:
run-ac:
pre-init:
init-private:
init-userdir:
init-user:
init-project:
do-init:
post-init:
init-check:
init:
deps-jar:
deps-j2ee-archive:
MyEnterprise-app-client.init:
MyEnterprise-ejb.init:
MyEnterprise-ejb.deps-jar:
MyEnterprise-ejb.compile:
MyEnterprise-ejb.library-inclusion-in-manifest:
MyEnterprise-ejb.dist-ear:
MyEnterprise-app-client.deps-jar:
MyEnterprise-app-client.compile:
MyEnterprise-app-client.library-inclusion-in-manifest:
MyEnterprise-app-client.dist-ear:
MyEnterprise-ejb.init:
MyEnterprise-ejb.deps-jar:
MyEnterprise-ejb.compile:
MyEnterprise-ejb.library-inclusion-in-manifest:
MyEnterprise-ejb.dist-ear:
pre-pre-compile:
pre-compile:
do-compile:
post-compile:
compile:
pre-dist:
post-dist:
dist-directory-deploy:
pre-run-deploy:
Undeploying ...
Initial deploying MyEnterprise to C:\Users\Naqsam\Documents\NetBeansProjects\MyEnterprise\dist\gfdeploy\MyEnterprise
Completed initial distribution of MyEnterprise
post-run-deploy:
run-deploy:
Warning: Could not find file C:\Users\Naqsam\.netbeans\6.8\GlassFish_v3\generated\xml\MyEnterprise\MyEnterpriseClient.jar to copy.
Copying 1 file to C:\Users\Naqsam\Documents\NetBeansProjects\MyEnterprise\dist
Copying 4 files to C:\Users\Naqsam\Documents\NetBeansProjects\MyEnterprise\dist\MyEnterpriseClient
Copying 1 file to C:\Users\Naqsam\Documents\NetBeansProjects\MyEnterprise\dist\MyEnterpriseClient
java.lang.NullPointerException
        at org.glassfish.appclient.client.acc.ACCLogger$1.run(ACCLogger.java:149)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.glassfish.appclient.client.acc.ACCLogger.reviseLogger(ACCLogger.java:146)
        at org.glassfish.appclient.client.acc.ACCLogger.init(ACCLogger.java:93)
        at org.glassfish.appclient.client.acc.ACCLogger.<init>(ACCLogger.java:80)
        at org.glassfish.appclient.client.AppClientFacade.createBuilder(AppClientFacade.java:360)
        at org.glassfish.appclient.client.AppClientFacade.prepareACC(AppClientFacade.java:247)
        at org.glassfish.appclient.client.acc.agent.AppClientContainerAgent.premain(AppClientContainerAgent.java:75)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
        at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
Java Result: 1
run-MyEnterprise-app-client:
run:
BUILD SUCCESSFUL (total time: 1 minute 59 seconds)

Сервер также показывает это сообщение об ошибке:

http://pastebin.com/NNu1eGA1

Как вы думаете, в чем проблема? Это все еще мое первое EJB-приложение, поэтому я новичок в этом API.


person PB_MLT    schedule 10.03.2010    source источник
comment
Спасибо, что удалили свой предыдущий пост с точно таким же вопросом.   -  person Buhake Sindi    schedule 10.03.2010


Ответы (2)


Удалите все EJB и перезапустите сервер Glassfish. Посмотрите, есть ли у вас какие-либо ошибки. Если вы получаете сообщение об ошибке без EJB, значит, что-то не так с вашей установкой Glassfish.

Если Glassfish запускается нормально без EJB, пожалуйста, опубликуйте свой код EJB. Может возникнуть проблема с кодом EJB.

person navr    schedule 12.03.2010
comment
Я пытался перезапустить Glassfish несколько раз, однако результат не изменился, выбрасывались те же исключения, что и выше. Затем я попробую переустановить Glassfish и посмотреть, работает ли он. - person PB_MLT; 13.03.2010

Пользователь Pascal Thivent был достаточно любезен, чтобы удалить сообщение, содержащее ответ на эту проблему, по какой-то странной и странной причине. Так что мне придется репостить решения.

Итак, в основном решения:

1: Glassfish выдавал много предупреждений, потому что он был установлен в каталоге, имя пути которого содержало пробел «Program Files». Итак, чтобы решить эту проблему, просто установите его в C:/

2: Что касается исключения NullPointerException, которое было выброшено (см. первый пост и прокрутите немного вниз), кажется, проблема, см. эту ссылку https://glassfish.dev.java.net/issues/show_bug.cgi?id=11494 с помощью Glassfish и java6u18. Поэтому, чтобы решить эту проблему, либо подождите, пока java исправит эту ошибку в будущих обновлениях, либо перейдите на java6u17 или ниже.

Надеюсь, это может быть полезно.

person PB_MLT    schedule 13.03.2010
comment
Да, я удалил мой ответ (можно?), потому что вы, похоже, не оценили его, и потому что у вас уже есть очень хороший ответ, который ясно и точно объясняет, в чем проблема (вы приняли это, не так ли?), вздох. Так зачем беспокоиться? - person Pascal Thivent; 14.03.2010
comment
Я искренне не понимаю, почему вы так расстроились из-за этого вопроса. Я только что задал вопрос, и вы, и navr сказали мне переустановить Glassfish (спасибо). Навр написал раньше вас, поэтому я выбираю его ответ. Единственное, что я нахожу несправедливым во всем этом, это то, что мне пришлось дважды писать решения задачи, теряя время, (поскольку сначала я писал решения в виде комментариев к вашему ответу), потому что вы удалили свой ответ (вы имеете полное право сделать это, однако это было несправедливо по отношению ко мне). - person PB_MLT; 15.03.2010