powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Универсальное 3-tier серверное приложение
24 сообщений из 24, страница 1 из 1
Универсальное 3-tier серверное приложение
    #39007165
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Занимаюсь рефакторингом одного старого проекта (на самом деле проектов 5, но я решил запихать все в 1 и сделать 6-7 модулей).
Есть несколько вопросов.

Начнем с web-tier

У меня есть модуль, занимающийся обработкой Rest запросов, а есть модуль, HTTP сервлеты. Запускаю на JBoss. Хотелось бы, чтобы оба модуля могли работать.

Я нашел решение. Я удалил web.xml из модуля rest, а его текст скопировал в web.xml модуля servlet. Но, это очень похоже на какое-то кривое-работающее решение. Мне же хочется чего-то такого красивого, и универсального.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007177
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забудьте слово "универсальный". Это псевдо-характеристика решения, которую используют только от незнания других.
Вы описали что вы делаете. Но из этого совсем не понятно зачем вы это делаете.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007178
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoУ меня есть модуль, занимающийся обработкой Rest запросов, а есть модуль, HTTP сервлеты. Запускаю на JBoss. Хотелось бы, чтобы оба модуля могли работать.
Что мешает обоим модулям работать?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007179
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geronemo, servlet api 3.0 позволяет обходиться без web.xml. Может, аннотации использовать и в эту сторону копать?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007232
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В сервлеты я попадаю при запросе, а в Rest нет. Вылетает вот такое
Servlet.service() for servlet ru.bakai.paymentsystem.webservicerest.RestApp threw exception: com.sun.jersey.api.container.ContainerException: The servlet context path and/or the servlet path contain characters that are percent encoded
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:717) [jersey-servlet-1.19.jar:1.19]
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007250
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Geronemo,

The servlet context path and/or the servlet path contain characters that are percent encoded.

А у вас там не только латиница?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007267
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yelenaGeronemo,

The servlet context path and/or the servlet path contain characters that are percent encoded.

А у вас там не только латиница?

Заработало. В названии был символ подчеркивания. Как-то я такого подвоха не ожидал.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007371
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Также из проблем универсальности я сделал 2 разных модуля, работающих с БД. Один из них я полностью скопировал из старого проекта, а второй создал новый - с EJB и JPA
В общем модуле Business у меня ессть интерфейсы, которые реализуются классами этих модулей и, в зависимости от настроек, интерфейсы дергают классы либо одного, либо другого модуля.

Вкратце выглядит вот так.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class ArchiveImpl implements ArchiveService {

    @EJB
    EJBarchiveBean ejBarchiveBean;

    public void moveRecordsToArchive() {

        ejBarchiveBean.moveRecordsToArchive();

    }
}


Но почему-то вылетает, что ejBarchiveBean - java.lang.NullPointerException

Может нужны какие-то другие какие-то аннотации
Код: java
1.
2.
@Stateless(name = "EJBarchiveBean")
public class EJBarchiveBean {......)
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39007541
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
Geronemo,

ArchiveImpl не является управляемым бином, ничто не будет обрабатывать аннотацию @EJB.
Вы точно уверены, что стоит связываться с этой задачей при таком уровне знаний JEE?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39009328
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WGAGeronemo,

ArchiveImpl не является управляемым бином, ничто не будет обрабатывать аннотацию @EJB.
Вы точно уверены, что стоит связываться с этой задачей при таком уровне знаний JEE?

А как мне сделать ArchiveImpl управляемым бином ?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39010044
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного переиначу вопрос.

Я хочу сделать такую штуку.

У меня есть некоторая бизнес-логика, не связанная ни с какими бинами - просто бесконечный поток (пока я из админки не скажу стоп), который раз в несколько секунд обрабатывает данные. И у меня несколько таких потоков и несколько интерфейсов, занимающихся обработкой данных.

В данном случае это ArchiveService - интерфейс, который освобождает таблицу, с которой я работаю очень активно и перекидывает данные в таблицу Архива. Есть несколько реализаций этого интерфейса, одна из них работает по jdbc, другая Hibernate, а 3-я это EJB. Я бы хотел, чтобы, в зависимости от моей конфигурации я работал с одной из реализаций интерфейса.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39010096
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoУ меня есть некоторая бизнес-логика, не связанная ни с какими бинами - просто бесконечный поток (пока я из админки не скажу стоп), который раз в несколько секунд обрабатывает данные. И у меня несколько таких потоков и несколько интерфейсов, занимающихся обработкой данных.
у вас по архитектуре вопрос или по ошибке?
- Если это основной поток, то как он "раз в N секунд"? Вы его тормозите?
- Что значит освобождает таблицу - перекидывает записи?
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39010127
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123GeronemoУ меня есть некоторая бизнес-логика, не связанная ни с какими бинами - просто бесконечный поток (пока я из админки не скажу стоп), который раз в несколько секунд обрабатывает данные. И у меня несколько таких потоков и несколько интерфейсов, занимающихся обработкой данных.
у вас по архитектуре вопрос или по ошибке?
- Если это основной поток, то как он "раз в N секунд"? Вы его тормозите?
- Что значит освобождает таблицу - перекидывает записи?

Делаю потоку sleep
В бесконечном цикле While(isserverLaunched()) {......}

и у меня есть несколько модулей, которые разными способами работают с БД (какие-то таблицы освобождает, какие-то пересчитывает, это уже не суть важно). Они делают одно и то же, но , но по своей технологии.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39010191
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,
Допустим.
Почему бины? Если нравится, то дерзай.
Мне лично нра. орм и сверху слой сервисов.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39010197
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Geronemo,
Допустим.
Почему бины? Если нравится, то дерзай.
Мне лично нра. орм и сверху слой сервисов.

Возможно будет и такой способ. Я пока только учусь (c)

В общем придумал я выход из положения.

public class ArchiveImpl implements ArchiveService {

@EJB
EJBarchiveBean ejBarchiveBean;

public ArchiveImpl() {
try {
ejBarchiveBean = (EJBarchiveBean) new InitialContext().lookup("java:module/EJBarchiveBean");
} catch (NamingException e) {
e.printStackTrace();
}
}
..........
}
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39014108
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Небольшая проблема с postgreSQL

Делаю нечто подобное
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
            conn = DB.openConnection();

            StringBuilder sqlQuery = new StringBuilder("Insert into bufferpaymenttable ");
            sqlQuery.append("(clientid, paymenttype, account, paymentvalue, currenttime) VALUES (?,?,?,?,?)");

            preparedStatement = conn.prepareStatement(sqlQuery.toString(), Statement.RETURN_GENERATED_KEYS);
            preparedStatement.setLong(1, payment.getClientId());
            preparedStatement.setString(2, payment.getPaymenttype());
            preparedStatement.setLong(3, payment.getAccount());
            preparedStatement.setLong(4, payment.getPaymentvalue());
            preparedStatement.setTimestamp(5, payment.getCurrenttime());

            preparedStatement.executeUpdate();

            ResultSet rs = preparedStatement.getGeneratedKeys();
            if (rs != null && rs.next()) {
                key = rs.getLong(1);
                rs.close();
            }



Разумеется в таблице bufferpaymenttable есть еще поле id, которое primary key и почему-то вылетает вот такого рода хрень
Код: sql
1.
2.
ОШИБКА: нулевое значение в колонке "id" нарушает ограничение NOT NULL
Подробности: Ошибочная строка содержит (null, 3044, Megafon, 3972972, 2705, 2015-07-23 06:32:57.461).


Какой там может быть null, сли оно должно автоматом туда вставлять значения
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39014111
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался... нету автоинкремента

http://eax.me/postgresql-install/
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021006
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вопрос такого типа.

Хочу сделать АРМ, чтобы в нем конфигурировать сервер, нажимать Старт/стоп и иметь возможность вести мониторинг. Причем структурно АРМ будет клиентом сервера.

Вопрос по GUI API. Самое простое и тупое это выбрать Swing. Но мне хочется что-то другое, чем я не владею (чтобы можно было потом похвастаться в резюме). Прицениваюсь к JavaFX, GWT, Vaadin, Tapestry. Х. з. что выбрать, с учетом того, что сервер можно настроить, как JEE, так и JavaSE. У меня есть пока что мини-версия на Swing (только ради Старт/стоп), в принципе могу доработать и этот модуль, а этот вопрос отложить на потом.. или вообще забить на него.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021009
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Geronemo,
называется это - админка, а не АРМ. Второе чаще для обычных юзверей применяют.
В чём вопрос то?
Ты счас описал то, как ты утром встал с постели и думаешь чем заняться)).
Твоя тема вообще про другое.
Извини за юмор.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021014
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123Geronemo,
называется это - админка, а не АРМ. Второе чаще для обычных юзверей применяют.
В чём вопрос то?
Ты счас описал то, как ты утром встал с постели и думаешь чем заняться)).
Твоя тема вообще про другое.
Извини за юмор.

"АРМ администратора", вроде тоже пойдет за название ? Я сократил. Ну если Админка правильнее, х. з., все-так это слэнг технарей.
Неважно.

Я встал с постели и решил составить план, чем мне заниматься ближайшие несколько дней. Как я и написал в 1-м сообщении, я занимаюсь рефакторингом немного корявого приложения. У меня было 5 проектов, а сейчас 1 проект и 8 модулей. Есть несколько модулей типа common, для разных приложений, потому так удобнее. Кроме того добавлена поддержка REST и EJB. Осталось сделать норм "админку". В которой я бы выбирал, с какой БД мне работать, в которой я бы мог чекбоксами делать конфиг и при запуске этот конфиг отправлялся серверу и подключались те, или иные модули.
Вопрос вот в чем - каким API лучше пользоваться для разработка "админки". Тут меня интересует актуальность, перспективность и распространенность этого API. Если есть какие-то вполне конкретные советы, то я воспользуюсь ими. Swing я уже владею, Wicket тоже. Т. ч. хотелось бы что-то другое, с чем я никогда не имел дела. Но также имеет значение такой нюанс - "админка" это не очень важная часть приложения. Возможность конфигурировать важнее. Т. ч. если есть какой-то GUI API, который было бы очень полезно знать java-программеру, я бы уделил ему какое-то время, чтобы получить базовые знания. Если все эти JavaFX, GWT, Vaadin, Tapestry никому не нужны, в юзаются только по инерции в некоторых компаниях, то я бы забил и немного наворотил текущий модуль на Swing, который был мне нужен для запуска и остановки сервера (в нем куча потоков, с while(isServerWorking) {}).
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021025
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoТ. ч. хотелось бы что-то другое, с чем я никогда не имел дела.
прочитай выше. Я уже советовал.
Напиши без EJB\бинов.
И побольше для юзверей, а не программистов. Иначе будут все скилы односторонние.
Системный программист, это тот, который _уже_ умеет писать просто). Т.е. находить простые решения.
IMHO
Удачи!
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021069
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123GeronemoТ. ч. хотелось бы что-то другое, с чем я никогда не имел дела.
прочитай выше. Я уже советовал.
Напиши без EJB\бинов.
И побольше для юзверей, а не программистов. Иначе будут все скилы односторонние.
Системный программист, это тот, который _уже_ умеет писать просто). Т.е. находить простые решения.
IMHO
Удачи!

Я уже написал EJB\бины и JPA
как раз для того, чтобы скиллов было поболее разных
Чтобы найти норм работу. Потому что кризис. Мне год назад было устроиться легче,чем сейчас, хоть и у меня был перерыв в стаже 2 года и моя предыдущая компания не предлагала для своих сотрудников какие-то серьезные задачи.
А мне нужна работа и если уж я не могу похвастаться резюме и глубиной знаний ни по одной тематике, так пусть будет хотя бы базовое понимание как можно большего понимания технологий. В процессе работы знания будут углубляться. Мне, по-большому, все равно буду ли я работать с JPA или jdbc, Vaadin или Tapestry. Я просто хочу быть хорошим специалистом. Технологий и фреймворков развелось как грязи. О чем меня спросят на следующем собеседовании ? Все время хотят что-то свое, но при этом к базовым скиллам требования довольно высокие. Поэтому я стараюсь писать как можно больше, для базы и потихоньку освоить как можно больше релевантных технологий. 2 месяца назад я упустил очень хорошую вакансию, потому что не знал, что такое REST И EJB. Там было очень просто задание, но было несколько вещей, с которыми я просто тупо никогда не сталкивался. Год назад я также упустил хорошую вакансию, потому что не знал, что такое Tomcat.
Сейчас я этим владею. Пусть не как senior, но базу я понимаю. И если устроюсь на норм работу с теми или иными требованиями, передо мной не будет задачи с нуля вникать, что такое тот или иной фреймворк. Я буду уже что-то понимать и с этого уровня освоиться будет намного легче. Но этот нюанс нужен больше даже не мне, а работодателю. Ну такие требования у них сейчас. Я получил много отказов, из-за того, что все хотят человека, которы был бы спецом и им не нужен кто-то, кого надо подтягивать полгода. Год назад я был именно таким. Но сейчас я уже человек, которого можно подтянуть месяца за 3, а, закончив этот проект и еще парочку, это будет уже 2 месяца.
Я понимаю, что извращение, самому себе ставить задачу, самому ее выполнять и самому проверять работоспособность. Но у меня есть знакомые, они мне дают советы + на некоторых форумах я надеюс услышать что-то дельное.

Ваш совет, он не прибавит мне скилла. И он не повысит мне шансов ближайшее время найти работу. Но я надеюсь, что кому-то не пох и он смотрит не со своей колокольни, а более глобально и может что-то посоветовать, за что мог бы сказать - спасибо, вы мне очень помогли. Нету желания помогать - не надо писать в этой ветке. Можно почитать, поржать со своими коллегами и пойти дальше.
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021085
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GeronemoВаш совет, он не прибавит мне скилла.
у меня подозрение, что ты дважды не понял моего вопроса и намёка.
Если без бинов и EJB, то это спринг. Счас понятно?
Зайди на ветку работа, и сравни поиском частоту упоминания.
С таким подходом,... вчера ты пропустил REST, завтра спринг, а послезавтра HTTP POST \ servlet.
Ты совсем не заметил, что пишешь совсем не по той теме что заявлена.
Пока она звучит - "Изучаю EJB".
Никто не мешает).
...
Рейтинг: 0 / 0
Универсальное 3-tier серверное приложение
    #39021221
Geronemo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123,

по повоу Спринга, спс. Я обязательно сделаю какой-нибудь проект по этой теме. Просто я с ним работал немного и решил, что пока этого достаточно лучше хоть как-то освоить REST, EJB, также получить опыт разработки архитектуры больших приложений (в моем случае оно большое, т. к. когда ядро почти готово я его закончу можно будет подключать сколько угожно модулей с соответствующим интерфейсом и это будет расширением функционала). Кстати я забил на красивую админку, сделаю небольшой апгрейд Swing-приложению.

Кстати, мне тут как раз идея пришла в голову. Не запихать ли мне тут еще Spring
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Универсальное 3-tier серверное приложение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]