|
|
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Это учебная задача. Делаю сам для себя, чтобы как можно лучше вспомнить java, освоить новые технологии и подтянуть SQL. На эту тему я создавал 2 темы http://www.sql.ru/forum/1114571-a/sozdal-bazu-dannyh-dlya-osvoeniya-sql http://www.sql.ru/forum/1114581/para-voprosov-po-sintaksisu Сейчас я приступаю непосредственно к разработке клиентской и серверной части довольно большой библиотеки. Как она бужет у меня выглядеть. 1. БД на MySQL 2. Сервер, который взаимодействует с БД и клиентскими приложениями. 3. Клиентские приложения, установленные у библиотекарей у на их рабочем месте. Если бы библиотека была маленькой, то п. 1, 2, 3 можно было бы разместить на одном компе, но я специально сам себе усложнил задачу, чтобы клиентские проги были отделены от сервера и между ними было какое-то взаимодействие. И вот тут у меня возникает 1-й вопрос, с помощью какой технологии лучше всего осуществить это взаимодействие . Допустим у нас локальная сеть, в которой 1 сервер и на разных компах установлены 5-10 клиентских прог. Я тут подумываю о JMS, т. к. по описанию вроде подходит и я был бы не прочь освоить эту технологию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 13:51 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo1. БД на MySQL 2. Сервер, который взаимодействует с БД и клиентскими приложениями. 3. Клиентские приложения, установленные у библиотекарей у на их рабочем месте. Чтобы такую фигню не расписывать, изучаем термины 2-tier 3-tier thin client GeronemoЕсли бы библиотека была маленькой, то п. 1, 2, 3 можно было бы разместить на одном компе, но я специально сам себе усложнил задачу, чтобы клиентские проги были отделены от сервера и между ними было какое-то взаимодействие. Ничего не понял. При чем здесь "маленькая большая"? Как вы что собрались размещать? База и Java сервер размещаются хоть на одном физическом серверех, хоть на разных, это не принципиально. Клиент, в подавляющем большинстве случаев - удаленное приложение. Но для разработки все 3 компанента можно на одном сервере запускать. Но о чем это вообще, понять сложно. GeronemoИ вот тут у меня возникает 1-й вопрос, с помощью какой технологии лучше всего осуществить это взаимодействие . Допустим у нас локальная сеть, в которой 1 сервер и на разных компах установлены 5-10 клиентских прог. Я тут подумываю о JMS, т. к. по описанию вроде подходит и я был бы не прочь освоить эту технологию. Клиент-клиент взаимодействия лучше всегда реализовывать через сервер. Который сможет правильно эти взаимодействия синхронизировать, если они вдруг конфликтуют. JMS это асинхронные очереди сообщений. К тебе особого отношения не имееют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 13:57 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo с помощью какой технологии лучше всего осуществить это взаимодействие . https://ru.wikipedia.org/wiki/RabbitMQ )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 13:59 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Самое интересное начинается когда наворачиваем горизонтальное масштабирование для пункта 2. Вот тогда синхронизация между узлами серверов (не трогая СУБД) заставляет попотеть ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 16:10 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGeronemo1. БД на MySQL 2. Сервер, который взаимодействует с БД и клиентскими приложениями. 3. Клиентские приложения, установленные у библиотекарей у на их рабочем месте. Чтобы такую фигню не расписывать, изучаем термины 2-tier 3-tier thin client Вы как-то ехидно отвечаете на вопрос. По-моему я довольно внятно на пальцах описал как будет выглядеть проект. За термины спасибо, буду знать. У меня вопрос по взаимодействию между клиентами и сервером. Я специально не хочу делать HTTP запросы на Сервлет, т. к. этой темой я уже владею и хочу что-то новое. Ну и для большей ясности проекта надо сказать, что клиентские программы будут находиться в одной сети с сервером за фаерволлом. Думаю этот нюанс имеет значение, по сравнению с ситуации, когда клиентом может оказаться кто угодно, откуда угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 16:34 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo ... Ну и для большей ясности проекта надо сказать, что клиентские программы будут находиться в одной сети с сервером за фаерволлом Думаю этот нюанс имеет значение, по сравнению с ситуации, когда клиентом может оказаться кто угодно, откуда угодно. Для хорошего(безопасно сделанного) клиента - не должно иметь значения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 16:37 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo У меня вопрос по взаимодействию между клиентами и сервером. Я специально не хочу делать HTTP запросы на Сервлет, т. к. этой темой я уже владею и хочу что-то новое. Напиши DSO под Linux под Apache - вот это будет experience! ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 16:39 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoВы как-то ехидно отвечаете на вопрос. Когда два абзаца укладываются в три слова "пишу 3-tier систему", то сложно удержаться. GeronemoПо-моему я довольно внятно на пальцах описал как будет выглядеть проект. По-вашему. А по-моему написано "пишу 3-tier систему "Библиотека"" и дальше что-то неразборчивое. GeronemoУ меня вопрос по взаимодействию между клиентами и сервером. Вот это уже понятно. А вот в изначально формулировке: Geronemoчтобы клиентские проги были отделены от сервера и между ними было какое-то взаимодействие Не понятно что за "между ними"? Между клиентами? Тогда это интересный вопрос. Между клиентом и сервером? Тогда тут вариантов не много. GeronemoЯ специально не хочу делать HTTP запросы на Сервлет, т. к. этой темой я уже владею и хочу что-то новое. Смело. Асинхронные сервлеты из 3.0 тоже освоены? Geronemo Ну и для большей ясности проекта надо сказать, что клиентские программы будут находиться в одной сети с сервером за фаерволлом. Думаю этот нюанс имеет значение, по сравнению с ситуации, когда клиентом может оказаться кто угодно, откуда угодно. И вот тут начинается самое интересное. Либо мы заинтересованы в клиенте, тогда мы используем любой протокол поверх HTTP и наш транспорт работает всегда и везде. Либо нам очень нужна производительность и тогда мы используем Socket Server. Вопрос сводится к "Пишу 3-tier систему для обучения. Посоветуйте на чем писать сервер помимо Servlet API". Вот это было бы понятно. И вот тут уже ответ сводится к нескольким составляющим - Транспорт - тут вариантов не много: HTTP либо TCP/UDP. - Протокол - из актуальных: JSON, Java binary Serialization, protobuf, свой собственный. - Framework/API - здесь уже выбор богатейший, но зависит от того что мы выбрали в качестве протокола и транспорта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 16:50 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Я тут подумал, а не лучший ли вариант вот этот Blazkowiczthin client Вся работа с БД, логика и даже интерфейс того, что мы видим на экране будет делаться/задаваться сервером, а веб-клиенты будут просто отображать информацию, которую им предоставит сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 20:51 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoИ вот тут у меня возникает 1-й вопрос, с помощью какой технологии лучше всего осуществить это взаимодействие . Допустим у нас локальная сеть, в которой 1 сервер и на разных компах установлены 5-10 клиентских прог. Я тут подумываю о JMS, т. к. по описанию вроде подходит и я был бы не прочь освоить эту технологию. БД на MySQL -- на MySQL, и БД Сервер, который взаимодействует с БД и клиентскими приложениями. -- любой сервер приложений, типа JBOSS/TOMCAT и какой-то фреймворк, который позволит строит WEB-приложение. На самом деле вроде бы тебе нужно MVC, значит --уже не любой фреймворк. Клиентские приложения, установленные у библиотекарей у на их рабочем месте. -- WEB-броузер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 21:20 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemoнас локальная сеть, в которой 1 сервер и на разных компах установлены 5-10 клиентских прог. Я тут подумываю о JMS, JMS тут -- самая неподходящая технология. Ну её никуда не запихать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 21:21 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
MasterZivGeronemoИ вот тут у меня возникает 1-й вопрос, с помощью какой технологии лучше всего осуществить это взаимодействие . Допустим у нас локальная сеть, в которой 1 сервер и на разных компах установлены 5-10 клиентских прог. Я тут подумываю о JMS, т. к. по описанию вроде подходит и я был бы не прочь освоить эту технологию. БД на MySQL -- на MySQL, и БД Сервер, который взаимодействует с БД и клиентскими приложениями. -- любой сервер приложений, типа JBOSS/TOMCAT и какой-то фреймворк, который позволит строит WEB-приложение. На самом деле вроде бы тебе нужно MVC, значит --уже не любой фреймворк. Клиентские приложения, установленные у библиотекарей у на их рабочем месте. -- WEB-броузер. Как думаете Glassfish4 + Spring хорошо подходит в моем случае (а у меня 2 важных критерия - чтобы подходило по предметной области и чтобы были технологии, с которыми я раньше не имел (мало имел) дела). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 22:41 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
читаю и удивляюсь, можно же из довольно простых вещей делать такие сложные системы, главное ведь "как" преподнести, а сколько умных фраз:-) а в итоге все сводится к: связующий фреймворк (пусть даже Servlets), представление(jsp), сервер, и база. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2014, 22:41 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
В общем, я решил делать проект на основе thin client, сервер - Glassfish4 Читаю http://habrahabr.ru/post/192434/ и создал вот такой input_number.xhtml файл Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Все работает, но почему-то кнопка (я текст выделил жирным шрифтом) имеет размеры 20 на 5 пикселей примерно. При этом я добавлял всякой отсебятины, типа width="100" height="20", но все равно видна только маленькая часть кнопки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 15:23 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, JSF каким боком к сабжу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 15:49 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, может потому что ты ее запихнул в b тег ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:02 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
публикация вроде не старая, а ауткамы на оcнове xml - не феерично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:05 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174публикация вроде не старая, а ауткамы на оcнове xml - не феерично да и Glassfish говно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:05 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174Geronemo, может потому что ты ее запихнул в b тег я этот тэг запихнул только тут, хотел выделить жирным шрифтом, не сработало. Вот текст Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. забыл никrema174публикация вроде не старая, а ауткамы на оcнове xml - не феерично да и Glassfish говно а чего там говняного ? Я попробовал сунуться в ASP.net, но понял, что мне понадобится очень много времени на освоение. Проект сервлетов под Томкат у меня есть. Я хочу что-то новое и чтобы работало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:13 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
забыл никда и Glassfish говно А вот у BMW обязателен к использованию. Видать на откатах в Oracle Support сидят. :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:16 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, попробуй такое Код: html 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:32 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174Geronemo, попробуй такое Код: html 1. 2. 3. Попробовал. Вот, что получается. Там где курсор, это и есть кнопка commandButton ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:42 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Курсора почему-то на Принтскри не нету. Кнопка это голубенькая хрень под словом Hello. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:43 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, я чет не понял, это что интернет эксплорер? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:44 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174, да, в Хроме то же самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:47 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
возможно из-за того что на странице лишний тег h:head ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:49 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemorema174, да, в Хроме то же самое В опере заработало lol ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 16:49 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoВ опере заработало lol В Хроме вдруг тоже заработало. В IE все так же помойка. Вероятно надо его обновить, х. з. Файрфокс не получается проверить, т. к. он у меня portable, вылетает какая-то ошибка при попытке запустить через него. В общем буду юзать те браузеры, где "работает". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 17:07 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174возможно из-за того что на странице лишний тег h:head Пробовал убрать, это не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 17:08 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemorema174возможно из-за того что на странице лишний тег h:head Пробовал убрать, это не влияет. в хроме есить инструменты разработчика. в мозиле есть плагины валидации эти инструменты позволяют находить ошибки лучше переходи на jsp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2014, 21:31 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Я тут нарисовал схему БД (т. е. часть ее, посвященная книгам). В центре внимания у нас находится "Литературное произведение". Он связано 1toMany с таблицей "Писатели", т. к. одно произведение могут написать несколько авторов. И также оно связано отношением ManyToMany с таблицей "Книги", т. к. в одной книге могут быть много произведений и точно также 1 книга может состоять из нескольких томов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2014, 11:24 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Насколько я не помню библиотеку родного универа, единицей учёта является каталожный номер. И это всегда одна книга, даже если произведение состоит из нескольких томов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2014, 11:40 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
ИМХО JSF - тормозной, сделайте лучше так: Браузер-Vaadin-EJB-JPA/ORM-База данных. Потом можно еще добавить кэш(memcached) и отчеты (jasperreports) Это все, как вы и хотели можно разнести по разным физически серверам(связь по socket) и каждую в отдельности объединить в кластер. Глассфишу я бы предпочел jboss. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 12:56 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
no56892ИМХО JSF - тормозной, сделайте лучше так: Браузер-Vaadin-EJB-JPA/ORM-База данных. вы же только что комментировали сайт на jsf, все шустренько работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 14:44 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
rema174, Дак там три с половиной контрола на странице...Вот когда автор нормально доделает, тогда посмотрим будет ли так же шустренько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 16:07 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
no56892, на самом деле у меня тоже есть вопросы jsf, например вот сайт – не перегружен, но интерфейс не очень отзывчивый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2014, 16:53 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
no56892ИМХО JSF - тормозной, сделайте лучше так: Браузер-Vaadin-EJB-JPA/ORM-База данных. Потом можно еще добавить кэш(memcached) и отчеты (jasperreports) Это все, как вы и хотели можно разнести по разным физически серверам(связь по socket) и каждую в отдельности объединить в кластер. Глассфишу я бы предпочел jboss. Я вот пытаюсь понять, я не уловил иронию или это был серьезный совет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2014, 05:14 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Небольшая реинкарнация темы. На каникулах делать особо нечего, поэтому решил еще раз заняться этим проектом, с нуля и учитывая ту фркймворки, которые мы используем на работе. Итак, у нас 3-tier система 1. БД на MySQL 2. Сервер (Spring), который общается с БД используя JPA и имеющий RMI-сервисы 3. Клиент, который отвечает за UI и дергает RMI-Сервисы, тем самым получая и отправляя данные. Сервер и клиент используют maven Понимаю, что у кого-то могут возникнуть вопросы по данной архитектуре, но у нас на работе несколько проектов, организованных именно так и хотелось бы разобраться в их архитектуре с нуля, написав некий аналог. Для начала у меня вопрос - как запустить серверное приложение, чтобы оно постоянно висело в памяти и ждало обращений от клиента, а не так, чтобы метод main отработал и приложение закрылось. Возможно надо унаследоваться от кого-нибудь. В рабочем проекте, я смотрю это реализовано так - public class App implements org.apache.commons.daemon.Daemon; Есть ли лучшее решение ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 17:21 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoДля начала у меня вопрос - как запустить серверное приложение, чтобы оно постоянно висело в памяти и ждало обращений от клиента, а не так, чтобы метод main отработал и приложение закрылосьНаписать некий цикл внутри main. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 18:34 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoСервер и клиент используют maven вообще-то, это проект использует мавен, а не сервер и клиент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 20:57 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoДля начала у меня вопрос - как запустить серверное приложение, чтобы оно постоянно висело в памяти и ждало обращений от клиента, а не так, чтобы метод main отработал и приложение закрылось. Возможно надо унаследоваться от кого-нибудь. бред. сделай хотя бы сервлет-хелломорду, а потом будеш браться за свою "систему" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2014, 21:00 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
У меня почему-то в web.xml клиента вот такие строчки вызывают runtime error Код: java 1. 2. 3. 4. 5. 6. 7. Перерыл весь инет, советуют что-то прописать в pom.xml. Но ничего не помогло. У кого-нибудь есть идеи ? SEVERE: Error configuring application listener of class org.springframework.web.context.request.RequestContextListener java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener SEVERE: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 20:12 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Как это ClassNotFoundException Все классы на месте, никакой красноты в коде не наблюдается. По нажажати. ctrl + mouse можно перейти в библиотеку spring-web-3.0.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 20:15 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Походу при проведении резюме уже пора добавлять такую абилку как умение смотреть логи. печально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 20:30 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Логи не помогли, а вот кропотливая перепроверка всех файлов конфигураций помогла, но теперь ошибка переехала в другое место. У меня тут сложности с тем, что я делаю проект, используя как основу 2 других проекта, пытаясь от каждого из них взять что-то. В итоге получается много модулей, которые я хочу с собой связать и постоянно вылетают такого рода ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.01.2015, 21:11 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Я целый день потратил, чтобы настроить как надо проект, но такое ощущение, что это была борьба с ветряными мельницами. Добавляю maven зависмость в одном месте, начинает вылетать ошибка в другом. Добавляю еще одну, снова ошибка где-то еще. Гуглю, изучаю, правлю. И вылетает ошибка, которая была в самом начале. В общем, я забил на этот rmi, решил упростить проект (у меня тут же вопрос возник, а нужен ли rmi в подобном проекте вообще). Изучив статьи на тему Spring, JPA, я решил сделать вот такое. @Entity @Table(name="writer") public class WriterDomain { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name="authorId") private Long authorId; .........} public interface WriterRepository extends CrudRepository<WriterDomain, Long> { } @Service public class WritersServiceImpl implements WritersService { @Autowired private WriterRepository writerRepository; public List<WriterDto> findAll() { Iterable<WriterDomain> listOfWriterRecords = writerRepository.findAll(); List<WriterDto> listOfWriters = new ArrayList<>(); ........... return listOfWriters; } public interface WritersService { public List<WriterDto> findAll(); } И теперь возник вопрос, как этим пользоваться. Потому что я по аналогии с имеющтимся кодом и тем, что нарыл в инете делаю такое public class NoMatterClass extends WebPage { @Autowired WritersService writersService; public NoMatterClass (final PageParameters parameters) { List<WriterDto> list = writersService.findAll(); .......... И у меня вылетает ошибка java.lang.NullPointerException как в последней строчке, так и если сделать WritersService writersService = new writersServiceImpl(); и Iterable<WriterDomain> listOfWriterRecords = writerRepository.findAll(); также NullPointerException Что не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 21:15 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
А вы в конструкторе что-ли вызываете? Так вроде поля инжектятся после создания объекта? нет разве? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2015, 21:44 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, Взгляните пожалуйста на книгу Якова Файна: Enterprise Web Development: From Desktop to Mobile http://enterprisewebbook.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 03:24 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, В этом уроке вы познакомитесь с основами RESTful Web Services и базовыми аннотациями для создания Resтful endpoint на сервере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 03:27 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 03:32 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Nebo, Спасибо. Приступил к просмотру. Тем временем, играю с spring-config.xml Я получаю вот такое исключение Line 36 in XML document from class path resource [spring-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/data/jpa/spring-jpa.xsd; lineNumber: 36; columnNumber: 63; src-resolve: Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute group' component. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 36 in XML document from class path resource [spring-config.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/data/jpa/spring-jpa.xsd; lineNumber: 36; columnNumber: 63; src-resolve: Cannot resolve the name 'repository:auditing-attributes' to a(n) 'attribute group' component. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:24 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Какой-то геморрой. Поменял пару вещей в pom.xml, и вышеоказанная ошибка пропала, но появилась другая. Unexpected exception parsing XML document from class path resource [spring-config.xml]; nested exception is org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class [org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler] for namespace [ http://www.springframework.org/schema/data/jpa%5D:]http://www.springframework.org/schema/data/jpa]: problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/config/AuditingHandlerBeanDefinitionParser org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [spring-config.xml]; nested exception is org.springframework.beans.FatalBeanException: Invalid NamespaceHandler class [org.springframework.data.jpa.repository.config.JpaRepositoryNameSpaceHandler] for namespace [ http://www.springframework.org/schema/data/jpa%5D:]http://www.springframework.org/schema/data/jpa]: problem with handler class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/config/AuditingHandlerBeanDefinitionParser ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 15:42 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
В общем, разобрался с исключениями. Пришлось гуглить, добавлять зависимости в maven, удалять их, менять version и т. д. Заработал Hibernate, соединение с базой установлено. Прописал вот такую штуку<prop key="hibernate.hbm2ddl.auto">validate</prop>, чтобы оно мне базу не пересоздавало каждый раз. Но есть проблема в сервисах. Например, лог выдает такое INFO - DefaultListableBeanFactory - Overriding bean definition for bean 'writerRepository': replacing [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] Честно говоря я не знаю, хорошо это или плохо, но написано Info, никакхи error или exception нету. Но потом, когда приложение уже работает, я делаю такю штуку public interface WriterRepository extends CrudRepository<WriterDomain, Long> { } @Service("WritersService") @Repository @Transactional public class WritersServiceImpl implements WritersService { @Autowired private WriterRepository writersRepository; public List<WriterDto> findAll() { Iterable<WriterDomain> listOfWriterRecords = writersRepository.findAll(); } } И там, где помечено красным вылетает NullPointerException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 18:17 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
xml файл выглядит вот так вот Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 20:55 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Почему такая тишина. 150 млн. в стране и никто не в теме ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.01.2015, 21:55 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, Страна отдыхает. И всем лень вникать в твои неформатированые логи, неподкюченые библиотеки и т.п. Есть общая рекомендация не мешать в кучу инъекции через XML и аннотации. Выбери один способ и его используй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 10:55 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGeronemo, Страна отдыхает. И всем лень вникать в твои неформатированые логи, неподкюченые библиотеки и т.п. С библиотеками были проблемы. Разобрался. Все запускается, все зависимости на месте. Но работает не так, как надо. Я пересмотрел кучу примеров в инете. У товарищей якобы все работает. По поводу логов, можно и отформатировать, но несильно это отличается от того, что было. INFO - DefaultListableBeanFactory - Overriding bean definition for bean 'writerRepository': replacing [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] Есть общая рекомендация не мешать в кучу инъекции через XML и аннотации. Выбери один способ и его используй. Ну я делаю по аналогии с реальным проектом, в котором все работает. Что именно вам не нравится. В xml файле прописаны общие вещи, которые для всего проекта. А в куче классов сущностей, репозиториев и т. д. я уже прописываю аннотации. Разве это не оптимально ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 12:40 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoНу я делаю по аналогии с реальным проектом, в котором все работает. За такое в универе даже тройку не всегда ставили. Где и как WritersServiceImpl инстанциируется? Как показывает история форума все удивления обычно занканчиваются на банальном new WritersServiceImpl(). У тебя не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 12:47 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, это у меня сделано. В как быть с private UserRepository userRepository; его же я не должен создавать, и по идее имею право делать вот такое userRepository.findAll(); Но оно выдает NullPointerException ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 14:53 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, Так WriterRepository или UserRepository? Варианта два. Либо Spring Data не сконфигурирован и репозиториев не создаёт. Либо WritersServiceImpl инстанциирован без контекста и в него вообще ничего не инжектится. Кстати, почему он и Service и Repository одновременно? Stacktrace NPE покажи. WritersServiceImpl откуда берется у вызывающего класса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 14:57 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGeronemo, Так WriterRepository или UserRepository? У меня есть и тот и тот. И еще несколько репозиториев. Варианта два. Либо Spring Data не сконфигурирован и репозиториев не создаёт. По поводу Спринг Дата, выше я указал конфиг. В приложениии я делаю такую штуку Код: java 1. 2. 3. 4. 5. 6. 7. 8. При запуске лог выглядит так автор[2015-01-05 04:48:12,842] Artifact HelloWorld:war exploded: Artifact is being deployed, please wait... янв 05, 2015 4:48:14 PM org.apache.catalina.core.ApplicationContext log INFO: No Spring WebApplicationInitializer types detected on classpath ????????????? ..................................... INFO - Application - Application start. INFO - XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [spring-config.xml] INFO - DefaultListableBeanFactory - Overriding bean definition for bean 'writerRepository': replacing [Root bean: class ???????????? [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] with [Root bean: class [org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean]; scope=; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null] ................... тут еще 3 записи INFO - DefaultListableBeanFactory - Overriding bean definition для осталбных репозиториев INFO - nericXmlApplicationContext - Refreshing org.springframework.context.support.GenericXmlApplicationContext@507d5db9: startup date [Mon Jan 05 16:48:15 FET 2015]; root of context hierarchy INFO - DriverManagerDataSource - Loaded JDBC driver: com.mysql.jdbc.Driver INFO - erEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'default' WARN - HibernatePersistence - HHH015016: Encountered a deprecated javax.persistence.spi.PersistenceProvider [org.hibernate.ejb.HibernatePersistence]; use [org.hibernate.jpa.HibernatePersistenceProvider] instead. INFO - LogHelper - HHH000204: Processing PersistenceUnitInfo [ name: default...] INFO - Version - HHH000412: Hibernate Core {4.3.7.Final} INFO - Environment - HHH000206: hibernate.properties not found INFO - Environment - HHH000021: Bytecode provider name : javassist INFO - Version - HCANN000001: Hibernate Commons Annotations {4.0.5.Final} INFO - Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect INFO - ASTQueryTranslatorFactory - HHH000397: Using ASTQueryTranslatorFactory INFO - SchemaValidator - HHH000229: Running schema validator INFO - SchemaValidator - HHH000102: Fetching database metadata INFO - TableMetadata - HHH000261: Table found: library.book INFO - TableMetadata - HHH000037: Columns: [numberofbooks, bookname, currentnumberofbooks, bookid] INFO - TableMetadata - HHH000261: Table found: library.bookinfo INFO - TableMetadata - HHH000037: Columns: [literaryworkid, bookid] INFO - TableMetadata - HHH000261: Table found: library.literarywork INFO - TableMetadata - HHH000037: Columns: [literaryworkid, literaryworkname, authorid] INFO - TableMetadata - HHH000261: Table found: library.users INFO - TableMetadata - HHH000037: Columns: [firstname, id, login, lastname, userpassword] INFO - TableMetadata - HHH000261: Table found: library.writerofliterarywork INFO - TableMetadata - HHH000037: Columns: [literaryworkid, authorid] INFO - TableMetadata - HHH000261: Table found: library.writer INFO - TableMetadata - HHH000037: Columns: [firstname, fullname, authorid, info, lastname] INFO - Application - Spring init done Либо WritersServiceImpl инстанциирован без контекста и в него вообще ничего не инжектится. Кстати, почему он и Service и Repository одновременно? Вкратце класс выглядит так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Слово сервис я убрал. Я много вариантов аннотаций перепробовал. Вот 2 примера из инета http://habrahabr.ru/post/238487/ http://habrahabr.ru/post/139421/ Stacktrace NPE покажи. WritersServiceImpl откуда берется у вызывающего класса? Вот как я вызываю service. (В идеале, я бы хотел, чтобы этот сервис был бы RMI И было несколько проектов, но я упростил задачу и буду усложнять ее по мере надобности) Стектрейс очен длинный, суть его вот в Caused by: java.lang.NullPointerException at ru.Bakai.services.impl.UsersServiceImpl.findAll(UsersServiceImpl.java:57) at ru.Bakai.pages.LoginPage.<init>(LoginPage.java:108) ... 37 more sersServiceImpl.java:57 - это Iterable<WriterDomain> listOfWriterRecords = writersRepository.findAll(); WritersService service = new WritersServiceImpl (); service.findAll(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 17:13 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
GeronemoINFO: No Spring WebApplicationInitializer types detected on classpath ????????????? С этим разобрался, прописал кое-что в Project Structure но все равно NPT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 17:19 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo WritersService service = new WritersServiceImpl (); service.findAll(); Ха-ха. Сеанс телепатии прошел успешно. Почему ты просто проигнорировал моё замечание про new WritersServiceImpl ()? Ах, не удобно читать без подсветки кода? Ты знаешь что такое объект? Ты знаешь что Spring IoC берет одни объекты и помещает в них ссылки на других. Это называется Dependency Injection. Ты знаешь что new WritersServiceImpl() создаёт новый объект? А теперь следи за руками. Spring про этот новый объект ничего не знает и поместить туда ничего не может. Ты его создал сам себе. И хочешь что Spring через какую-то магию туда наижектил зависимостей? Нет никакой магии. Не нужно пытаться проглотить весь пирог целиком. Начините с основ Dependency Injection, прежде чем использовать всю мощь Spring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 17:22 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Так сначала я не создавал объекта и не работало. Потом стал экспериментировать. Так что не так в коде. Если у товарище по ссылкам якобы все работает, почему у меня нет. Я вернул, как было, убрал создание объекта. У меня снова writerService.findAll(); выкидывает исключение. Код: java 1. 2. 3. 4. 5. 6. 7. 8. Код: java 1. 2. 3. 4. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Я играюсь с ключевыми словами Service. Autowired и еще несколькими, смотрю, как сделано по ссылкам, но все время NPE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 19:38 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, NPE значит что нет зависимости. Зависимости нет потому что Spring её не инжектит. Если Spring не инжектит, значит он не знает про этот объект потому что тот создан вне контекста. Метод научного тыка проб и ошибок замечательная штука, но не для таких сложных фреймверков. По стеку кто-то вызывает LoginPage, а тот вызывает Service. LoginPage это контроллер? Service туда инжектится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 20:23 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGeronemo, NPE значит что нет зависимости. Зависимости нет потому что Spring её не инжектит. Если Spring не инжектит, значит он не знает про этот объект потому что тот создан вне контекста. Метод научного тыка проб и ошибок замечательная штука, но не для таких сложных фреймверков. По стеку кто-то вызывает LoginPage, а тот вызывает Service. LoginPage это контроллер? Service туда инжектится? LoginPage вызывается главным классом, где прописано вот такое Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Кстати, в spring-config.xml есть такая строчка <bean class="ru.corp.Dao.repository.AutowireHelper" factory-method="getInstance" /> И есть такой класс, который я нарыл в инете. Слева от названия класса стоит значок, который означает, что это Spring Bean и если на него нажать, то мы попадаем на эту самую строчку Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Этот класс нигде в программе явно не вызывается. Кстати, очень любопытный момент. Я поставил во всех 3-х методах брейкпойнтах. При запуске программы я побывал во 2-м и 3-м методе и пока гулял дебаггером по разным методам всяких spring классов, в одном месте я увидел, что программа создала 23 бина, из них все мои repository и и все Impl классы. А также куча каких-то системных бинов. Т. е. бины создаются, но в LoginPage они не видны. В метод autowire класса AutowireHelper я так ни разу не попал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 22:34 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Любопытно, сделал вот такую штуку из главного класса автор @Override public void init() { List<WriterDto> list; LOG.info("Application start."); try { gxac = new GenericXmlApplicationContext(); gxac.load("classpath:/spring-config.xml"); gxac.refresh(); gxac.registerShutdownHook(); list = ((WritersService)gxac.getBean("writersService")).findAll(); } catch (Throwable t) { LOG.error(t.getMessage(), t); } LOG.info("Spring init done"); } Выделенная красным строчка действительно вернуло то, что находится в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2015, 23:47 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Придумал временное решение проблемы. Создал вот такой метод в главном классе Application Код: java 1. 2. 3. А потом вызываю откуда захочу Код: java 1. Немного извращение, но это хотя бы работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 13:21 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
авторЭтот класс нигде в программе явно не вызывается. Кстати, очень любопытный момент. Я поставил во всех 3-х методах брейкпойнтах. При запуске программы я побывал во 2-м и 3-м методе и пока гулял дебаггером по разным методам всяких spring классов, в одном месте я увидел, что программа создала 23 бина, из них все мои repository и и все Impl классы. А также куча каких-то системных бинов. Т. е. бины создаются, но в LoginPage они не видны. В метод autowire класса AutowireHelper я так ни разу не попал. Бросьте эту ахинею, запутаетесь и потеряете время. Изучайте лучше основы программирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 15:29 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, Что такое LoginPage для меня до сих пор загадка. Похоже что проекту остро не хватает Spring MVC, чтобы ваш LoginPage попал под управление Spring. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 15:38 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Йуный джавистЪБросьте эту ахинею, запутаетесь и потеряете время. Изучайте лучше основы программирования. Почему ахинею ? И почему вы считаете, что ваш комментарий полезен и компетентен ? У меня большой опыт програмирования на Java, но у меня был и очень большой перерыв. Я многое забыл, также появилось много новых технологий, фреймворков и т. д. Надо основами Java я работаю итак. Несколько месяцев назад прочитал хорошую книжку, сейчас смотрю видеоуроки (чуть выше товарищ посоветовал, там 18 уроков, я начал их смотреть сначала, очень рекомендую). По поводу времени. Самый большой поглотитель времени у меня это когда я натыкаюсь на вот такие вот проблемки, когда в теории должно работать, но я что-то где-то забыл прописать, чаще всего по незнанию каких-то нюансов. Можно понимать вопрос в целом, на 80% где-то, но задачу надо решить на 100% и вот эти 20% это какие-то мелочи, которые отнимают кучу времени. И тогда я задаю вопрос на форуме, а сам параллельно пытаюсь найти решение. Вам кажется вопрос глупым, а для меня это препятствие, чтобы продолжить работу. И это надо как-то разрешить. Сейчас я придумал некоторое корявое решение, как получить доступ к сервисам, чтобы была полноценная возможность продолжить работу. Когда знакомые программисты приедут с какого-нибудь Таиланда, я проконсультируюсь и сделаю как надо. А пока есть как есть и я буду сюда задавать глупые вопросы. Мне нечего стесняться Вас или кого-то еще. Я специально задал проекту высокий уровень, чтобы мозг напрягался. Потому что на работе такого рода проекты уже разработаны с т. з. архитектуры. И у меня стоят много каких-то узких задач, которые я делаю по аналогии какими-то более ранними проектами. А мне хочется максимально быстрого прогресса, т. к. я несколько лет потерял в профессиональном плане как программист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 17:58 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
BlazkowiczGeronemo, Что такое LoginPage для меня до сих пор загадка. Похоже что проекту остро не хватает Spring MVC, чтобы ваш LoginPage попал под управление Spring. Вкратце как-то так. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Сразу же при запуске открывается страница LoginPage. Доступ к бину имею только из GenericXmlApplicationContext gxac; Почему-то бины не инжектятся (или как это называется) я х. з. Я на это проблему убил очень много времени (похоже надо перечитать книгу про тайм-менеджмент). И поэтому оставлю так и продолжу работу над модификацией БД, созданием страниц, сервисов, Domain, Dto классов, потому как это у меня работает, но тут надо очень много чего сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 18:14 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
>(чуть выше товарищ посоветовал, там 18 уроков, я начал их смотреть сначала, очень рекомендую). Файна слушаем! Товарищ ещё посоветует:) Книжечка: Гибкая разработка приложений на Java с помощью Spring, Hibernate и Eclipse. Анил Хемраджани Самый длинный путь бывает самым коротким) https://www.youtube.com/user/ytkach ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 20:22 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 20:25 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, на самом деле читать надо очень много. Вдумчиво, последовательно, не торопясь Со временем, количество перейдёт в качество. Ребята здесь правы, что надо взяться за теорию. Без неё никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2015, 20:28 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Тю, так это что Wicket чтоли? LoginPage унаследован от IPage? Если да - то все должно инжектится автоматически, и все эти пляски с созданием контекста выкинуть немеделнно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 00:17 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
авторПочему ахинею ? Потому что требуются нечеловеческие усилия для написания простых вещей, все глючит и отваливается внутри каких-то фреймворков, которые интерпретируют xml. Это все лишняя сложность, которая берется из-за оперирования выдуманными сущностями. Вам нужно сделать какую-то формочку для логина, по сути это один html документ, пара http и sql запросов. Все просто и понятно. Теперь вы берете спринг, JSF и hibernate и получаете авторjava.lang.NoClassDefFoundError: org/springframework/data/config/AuditingHandlerBeanDefinitionParser Что такое этот AuditingHandlerBeanDefinitionParser? Для чего он нужен? Открываем код и видим: http://grepcode.com/file/repo1.maven.org/maven2/org.springframework.data/spring-data-commons/1.6.1.RELEASE/org/springframework/data/config/AuditingHandlerBeanDefinitionParser.java Код: java 1. 2. 3. Это какой-то таинственный говнокод, зачем он нужен и что он делает - загадка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 05:15 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
забыл никТю, так это что Wicket чтоли? LoginPage унаследован от IPage? Если да - то все должно инжектится автоматически, и все эти пляски с созданием контекста выкинуть немеделнно Да, оно самое, унаслеловано от WebPage (кстати, может кто-то посоветует для фронт-енда фреймворк более удобный/функционалный). Автоматически не инжектится. Я решил временно забить на этот вопрос. Буду читать книги, делать те задачи в рамках проекта, которые я знаю как делать, а потом разберусь с тем, что сделано временно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 13:40 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
NeboСамый длинный путь бывает самым коротким) https://www.youtube.com/user/ytkach ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 13:43 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Вылизал запрос для поиска Читателя по частичным совпадениям (надо бы еще сортировку добавить). Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. Но немного смущают габариты этой функции. Можно ли покороче, при данной поставленной задаче (см. логику построения запроса) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 20:32 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Да что за бред. Вдруг ни с того ни с сего все запросы на поиск Читателя стали выкидывать исключения. Last cause: unexpected char: ';' [select * from reader where id=4;] Я копирую текст запроса в dbForge, там он прекрасно себя чувствует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 21:23 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Удалил ; в конце, теперь вылетает вот такое Last cause: unexpected token: * near line 1, column 8 [select * from reader where id=6] Я же когда выкладывал 2-мя сообщениями выше, все норм работало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 21:46 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Нашел 2 ошибки у себя. Во-первых надо пользоваться вот такой штукой Query query = entityManager.createNativeQuery(sb.toString(), ReaderDomain.class); а если хочется TypedQuery, то там какой-то другой формат запроса, х. з. какой. Ему и ; и * не нравится Во-вторых какой-то гемор с кэштрованием. Т. к. я сначала сделал createNativeQuery, а потом в погоне за красотой кода привел его к тому виду, как несколькими сообщениями выше. И какое-то время у меня это работало, похоже из-за кэширования какого-то. А потом перестало работать и я не мог понять почему, ведь я ничего не менял. А на самом деле менял, но полчаса до этого. Очень пренеприятная ситуация возникла. Столько времени потратил на ровном месте из-за чего-то, чего и быть то не должно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2015, 23:11 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
И еще больше потратите, пока наконец документацию не прочтете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 00:19 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
забыл никИ еще больше потратите, пока наконец документацию не прочтете. Читаю потихоньку. Нашел примеры, как создавать TypedQuery но не вижу большого смысла делать именно таким способом. Все-таки в проекте итак слишком много нового для меня, а какого-то особого преимущества у использования createNamedQuery(java.lang.String s, java.lang.Class<T> aClass); перед Query createNativeQuery(java.lang.String s, java.lang.Class aClass); я не вижу.В версии 1.0 Я буду делать так, чтобы работало и не было ошибок. Далее следующий шаг это оптимизация и решение той же задачи нескольким другим путем. Я бы хотел особо отметить, что для меня важно в первую очередь не сделать проект, а чтобы в процессе работы научиться максимуму, что можно выжать из поставленной задачи. Поэтому не вижу ничего зазорного в том, чтобы сделать сначала так, апаралелльно в процессе почитывать/слушать разного рода документацию. И когда все будет более менее красиво работать заняться украшательствами. А пока моей личной оперативной памяти и времени не хватит, чтобы объять столько новых тем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2015, 11:33 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
До чего же прикольная штука эта JPA persistence. Я замутил SQL запрос такого рода Код: plsql 1. 2. 3. Вызвал Query query = entityManager.createNativeQuery(sb.toString(), LiteraryWorkDomain.class); List<LiteraryWorkDomain> listOfLiteraryWorksRecords = entityManager.createNativeQuery(sb.toString(), LiteraryWorkDomain.class); И получил список записей, в каждой из которых кроме полей таблицы literarywork есть поля списков записей из других таблиц, отвечающие критериям запроса. Т. е. Мне не надо делать несколько запросов, типа 1. найти все произведения по названия, 2. найти все произведения по автору, 3. На все книги, содержащие данные произведения. и не надо разводить при этом зоопарк списков разных сущностей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 13:41 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
хм. в функционалу форума явная дыра. Нету функции редактирования сообщения в пред. сообщении п. 3 звучит так 3. Найти все книги, содержащие данные произведения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 13:43 |
|
||
|
Клиент-серверное приложение "Библиотека"
|
|||
|---|---|---|---|
|
#18+
Geronemo, Код: sql 1. 2. 3. Ваш запрос можно переписать в более удобочитаемом виде: Код: sql 1. 2. 3. 4. Или так: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2015, 14:40 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2125971]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
409ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
187ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 879ms |

| 0 / 0 |
