Информациони системи 1/JMS — разлика између измена
Пређи на навигацију
Пређи на претрагу
м (12.0 preporučujemo jer nema ove probleme a ne jer ih ima) |
м (Ne sme static na @Resource u REST projektu) |
||
| Ред 21: | Ред 21: | ||
* Уколико за пројекат додајете JMS комуникацију у REST пројекат, не заборавите да се JMS ''Connection Factory'', ''Topic'' или ''Queue'' може убацити преко ''Resource Injection'' (користећи <code>@Resource</code> анотацију) само уколико је класа означена као ''Enterprise Java Bean'', неком од анотација попут <code>@Stateless</code>, <code>@Stateful</code> или <code>@Singleton</code>. | * Уколико за пројекат додајете JMS комуникацију у REST пројекат, не заборавите да се JMS ''Connection Factory'', ''Topic'' или ''Queue'' може убацити преко ''Resource Injection'' (користећи <code>@Resource</code> анотацију) само уколико је класа означена као ''Enterprise Java Bean'', неком од анотација попут <code>@Stateless</code>, <code>@Stateful</code> или <code>@Singleton</code>. | ||
** Уколило добијате <code>NullPointerException</code> приликом приступа ''ConnectionFactory'' објекту, то може бити симптом овог проблема. | ** Уколило добијате <code>NullPointerException</code> приликом приступа ''ConnectionFactory'' објекту, то може бити симптом овог проблема. | ||
** Такође, убачена поља, за разлику од нормалних JMS пројеката, не смеју бити статичка. | |||
[[Категорија:Информациони системи 1]] | [[Категорија:Информациони системи 1]] | ||
[[Категорија:Водичи]] | [[Категорија:Водичи]] | ||
Верзија на датум 29. јануар 2022. у 19:32
На првој лабораторијској вежби ради се Java Message Service (JMS).
Поставка
Следећи поступак би требало да вас доведе до успешне поставке како бисте били спремни за покретање пројеката са странице предмета.
- Инсталирајте JDK (Java Development Kit) 8. Званични сајт за инсталацију тражи пријављивање пре преузимања, па можете преузети и са следећег студентског драјва. Препоручује се да осим ове верзије немате друге верзије JDK инсталиране на рачунару, или да вам (уколико вам то оперативни систем дозвољава) JDK 8 буде постављен као подразумевани (
java -versionкоманда би требало да помиње 1.8.0). - Преузмите Apache NetBeans са њиховог сајта. Препоручује се да преузмете верзију 12.0, која је такође и LTS (Long Term Support) због тога што је она инсталирана у рачунарским лабораторијама и због честих проблема са генерисањем ентитетских класа у JPA делу градива на новијим верзијама NetBeans.
- При инсталирању NetBeans, обавезно га инсталирајте у директоријуму без размака у путањи. На Windows, NetBeans се подразумевано инсталира у
Program Filesдиректоријуму, па неке библиотеке неће моћи да се успешно увезу. Зато морате променити подразумевану путању инсталације на, на пример,C:\NetBeans. Путања до JDK не би требало да има ових проблема. - Када укључите NetBeans, десним кликом на одељак Services → Servers и бирањем опције Add Server можете додати GlassFish Server. При додавању ће вас питати за верзију, где можете изабрати 5.1.0 или 5.0 (која има једну зачкољицу при бирању класе драјвера у трећем блоку предавања, видљиву на вежбама Стефана Тубића из 2020. године).
- Уколико вам се овде деси грешка "Not a valid GlassFish Server installation.", погледајте да вам нису остале прошле инсталације GlassFish Server, на пример у вашем корисничком директоријуму. Такође можете да пробате са другом верзијом GlassFish.
- Уколико вам се деси да не можете да видите пројекте у Projects одељку, пробајте са овим упутствима.
- Уколико вам се деси да не може да се увезе пакет
javax.jmsили његови подпакети, у Properties тог пројекта, под одељком Libraries, можете изабрати Add Library а затим изабрати Java EE 8 API Library. - Након што сте успешно отворили пројекат, у њему можете видети
@Resourceдекларације са именима JMS Connection Factory, Topic или Queue које треба да направите на GlassFish серверу. Сервер прво треба да покренете десним кликом на њега и бирањем опције Start, конзола за управљање се налази на http://localhost:4848, а ресурсе можете правити под Resources → JMS Resources у левој траци.- Уколико сте правили више GlassFish сервера, порт можда није 4848. То можете да видите у DAS Port одељку када изаберете Properties на серверу након десног клика.
- Не заборавите да поруке могу да остају у Queue и Topic и након гашења вашег програма. Понекад може да се деси да ваш програм чита из реда у који су послате поруке из неког од претходних пројеката или из тог истог пројекта али са неком грешком. У том случају најлакше је направити нови Queue или Topic и променити име ресурса у пројекту. Брисање и прављење ресурса са истим именом на серверу понекад може да не ради.
- Понекад при прављењу ресурса GlassFish може да баци неочекивану серверску грешку. У том случају само се вратите на контролну таблу а ресурс би требало да остане ту.
- Уколико вам се деси грешка "The module has not been deployed." праву грешку можете видети у GlassFish Server табу. Нису све грешке означене црвеном бојом.
- Уколико тамо пише "Specified library jar javaee-api-8.0.jar does not exist", прочитајте корак 3.
Напомене
- Уколико покрећете нови пројекат, изаберите Java with Ant → Java EE → Enterprise Application Client.
- Уколико за пројекат додајете JMS комуникацију у REST пројекат, не заборавите да се JMS Connection Factory, Topic или Queue може убацити преко Resource Injection (користећи
@Resourceанотацију) само уколико је класа означена као Enterprise Java Bean, неком од анотација попут@Stateless,@Statefulили@Singleton.- Уколило добијате
NullPointerExceptionприликом приступа ConnectionFactory објекту, то може бити симптом овог проблема. - Такође, убачена поља, за разлику од нормалних JMS пројеката, не смеју бити статичка.
- Уколило добијате