powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Эмуляция сервера приложений в NetBeans
30 сообщений из 30, показаны все 2 страниц
Эмуляция сервера приложений в NetBeans
    #39074351
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаем некое веб-приложение, при создании оно автоматом привязывается к установленному GF. Ок.
Теперь нам естественно понадобилось отладить немного.
Обходился вариантами:
- выводить сообщения в лог (стандартный логгер или где-то в базу)
- выводить сообщения на страницу
НО иногда надо просто пройтись по брейкпоинтам.
Для этого брал нужную часть веб-приложения и делал из нее приложение SE. Но это же ужас какой-то, надоело )
Можно ли как-то дебажить в нетбинзе веб-приложения?
Для этого видимо он должен стартовать их не в GlassFishe, а сам?
В общем каг? )
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074362
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS- выводить сообщения в лог (стандартный логгер или где-то в базу)
- выводить сообщения на страницу

А вы упёртый. Для начала небольшой ликбез.
Любое приложение для JVM можно запустить в режиме отладки через параметры командной строки. Ну, то есть это параметр JVM, а не приложения.
Любая внятная IDE поддерживает Remote Debug, для которого достаточно указать параметры отладки JVM чтобы приаттачить IDE к запущеной JVM.
Продвинутые IDE содержат в себе интеграцию с серверами приложений. И как можно было не запустить GF и NB, даже представить себе не могу. Это же неразрывная парочка.

Теперь по делу

Мануал у NB на столько большой и подробный, что там точно должно быть. Надо только поискать.
Но, вот первая ссылка из гугла содержит пошаговые инструкции
https://netbeans.org/bugzilla/show_bug.cgi?id=195166
Мануал GF по запуску в режиме отладки
https://docs.oracle.com/cd/E19798-01/821-1752/beafc/index.html
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074367
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,

И нет никакой "эмуляции" NB запускает GF с параметрами отладки и коннектится
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074444
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSДелаем некое веб-приложение, при создании оно автоматом привязывается к установленному GF. Ок.
Теперь нам естественно понадобилось отладить немного.
Обходился вариантами:
- выводить сообщения в лог (стандартный логгер или где-то в базу)
- выводить сообщения на страницу
НО иногда надо просто пройтись по брейкпоинтам.
Для этого брал нужную часть веб-приложения и делал из нее приложение SE. Но это же ужас какой-то, надоело )
Можно ли как-то дебажить в нетбинзе веб-приложения?
Для этого видимо он должен стартовать их не в GlassFishe, а сам?
В общем каг? )

junit + mock
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074452
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1junit + mock
Блин, хотел же написать про юниттесты и забыл :)
Тоже правильно!
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074480
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz , спасибо, помогло :).
Действительно оказалось, достаточно остановить GF, а при запуске в режиме отладки NB, сам его запускает в соотв. режиме.
При этом даже когда сервер остановлен, если зайти в NB, в Сервис-Серверы, то запустк GF по правой кнопке ни просто, ни в режиме отладки почему-то задизейблены.
Если потыкать в консоли GF, пытаясь выставить debug, то при перезапуске признак все равно сброшен почему-то (или ототбражается как-то не всегда нормально).
junit + mock, не знаю что это, пока хотелось бы научиться довольствоваться обычным идэешным дебагом )
BlazkowiczИ как можно было не запустить GF и NB, даже представить себе не могу. Это же неразрывная парочка.
Запускаются нормально не спорю, не воткнул сразу как именно в отладке запустить.
С документацией все не подружусь никак :(
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074549
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В отладке запускаемся, другая засада - не видит коннекта к бд.
Открыл консоль GF - оказалось, что при запуске в отладочном режиме из-под NB, почему-то не подхватились коннекты и датасорсы, которые прописал, когда запускал GF как обычно из консоли.
Ок. Запустил GF из-под NB, зашел в адимнку GF, прописал заново такие же коннекты. НО коннект(ping) не проходит: )
Ping Connection Pool failed for test_conn. Class name is wrong or classpath is not set for : oracle.jdbc.pool.OracleDataSource Please check the server.log for more details.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074575
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В логе вроде по-русски пишет:
RAR8054: Exception while creating an unpooled [test] connection for pool [ test_conn ], Class name is wrong or classpath is not set for : oracle.jdbc.pool.OracleDataSource
Но куда бежать непонятно )
Где, как надо прописать classpath for oracle.jdbc.pool.OracleDataSource?
И вообще странно, что он не подхватывает пул, которые был настроен ранее при запуске GF и консоли. Что-то не так делаю наверно )
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074642
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может первое впечатление, но кодить на java - это какой-то адский ад - пол дня лазишь, настраиваешь конфиги, пути прописываешь и это еще с IDE, если руками все связывать вообще повеситься наверно проще )
Короче нашел, что NB, создает свой GF, положил ему туда jdbc, все законнетилось.
(AppData\Roaming\NetBeans\8.0.2\config\GF_4.1\domain1\lib)
Отсюда понятно и почему не скопировались датасорсы с исходного экземпляра GF.
Всем спасибо пока.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074689
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSМожет первое впечатление, но кодить на java - это какой-то адский ад - пол дня лазишь, настраиваешь конфиги, пути прописываешь и это еще с IDE, если руками все связывать вообще повеситься наверно проще )

Так и есть. Программить на Java всё равно что Oracle админить. Только хардкор.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39074785
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще небольшой вопросик.
Вот мы в дебаге запускаем сервлет, который через пул потоков стартует еще несколько потоков.
Все дебажится, все норм. Теперь нам надо прервать выполнение.
Жмем "Завершить процесс отладки" Shift+f5. В IDE приложение будто бы останавливается, но на GF по изменениям в БД видно, что оно по-прежнему фигачит. Т.о., чтобы остановить его, приходится рестартовать GF (при чем путем перезапуска NB, что тоже как-то через ж. похоже)).
Можно наверно:
1. попробовать рестартовать GF из консоли (но не факт, что NB его потом подхватит)
2. выставлять где-то флаг, что мол пора закругляться, а в потоках периодически посматривать на него и если что завершать потоки

Но хотелось бы завершать все потоки именно по нажатию Shift+f5.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075057
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,

JEE спецификация настоятельно не рекомендует стартовать новые потоки в JEE приложениях. В частности это может привести к утечкам памяти.
А так, смотреть надо почему не останавливается. Потоки, возможно, не демоны и фигачат без остановки?
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075318
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczJEE спецификация настоятельно не рекомендует стартовать новые потоки в JEE приложениях. В частности это может привести к утечкам памяти.
А так, смотреть надо почему не останавливается. Потоки, возможно, не демоны и фигачат без остановки?
Да. Немного смотрел похожую тему .
1. Странно это как-то имхо. Есть стандартные классы по многопоточности, но использовать их почему-то именно в сервлетах например нельзя, т.к. могут быть утечки памяти. Ничего не понимаю ) Звучит немного абсурдно по-моему.
2. Но как тогда правильно оформлять? То есть на GF в виде сервлета вешается приложение, которое запускается по @Schedule допустим, раз в неделю и выполняет определенную работу и крайне желательно выполнять ее в неск. потоков.
Можно конечно разбить на некс. сервлетов, но вариант не очень устраивает.
А так да, точно - они же не демоны )
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075365
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSНо как тогда правильно оформлять?
не писать веб в стиле: "Запихнуть десктоп в сервлет".
Т.е. отвязать длительные задачи от HTTP.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075376
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSДа. Немного смотрел похожую тему .
1. Странно это как-то имхо. Есть стандартные классы по многопоточности, но использовать их почему-то именно в сервлетах например нельзя, т.к. могут быть утечки памяти. Ничего не понимаю ) Звучит немного абсурдно по-моему.

JEE sucks

JDS2. Но как тогда правильно оформлять? То есть на GF в виде сервлета вешается приложение, которое запускается по @Schedule допустим, раз в неделю и выполняет определенную работу и крайне желательно выполнять ее в неск. потоков.
Можно конечно разбить на некс. сервлетов, но вариант не очень устраивает.
А так да, точно - они же не демоны )
http://docs.oracle.com/javaee/7/api/javax/enterprise/concurrent/package-summary.html
Просто для работы с потоками и асинхронными задачами нужно использовать JEE API либо средства контейнера вместо JCU
Точно так же JEE не рекомендует работать с файловой системой напрямую, например.

Ну и раз твои потоки не демоны, то, конечно же, контейнер ждет их штатного завершения. Нужно вызывать хотя бы executionservice.destroy()
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075461
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123не писать веб в стиле: "Запихнуть десктоп в сервлет".
Т.е. отвязать длительные задачи от HTTP.
Отлично. Мне тоже ближе этот подход )
Заранее сори, за наверно совсем тупой вопрос )
Какой тип приложения тогда оптимальнее создать в NB, чтобы можно было повесить его в GF и чтобы оно отрабатывало в фоне по расписанию? ) (при этом похоже, нюансы многопоточности все равно остаются).
Можно обойтись и вообще без GF, а написать обычное SE-приложение, и запускать его шедулером операционки по расписанию, но это как-то не очень имхо. )
Blazkowicz, спасибо, попробую попробовать )
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075469
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSМожно обойтись и вообще без GF, а написать обычное SE-приложение, и запускать его шедулером операционки по расписанию, но это как-то не очень имхо. )
Про Оккама слышал? Какие проблемы в этой задаче решает GF?
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075480
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSнюансы многопоточности все равно остаются).
нужно повесить задачи на другого)). У этого друго уже есть всё для потоков.
Т.к. задачу ты не озвучил, то эти другие:
- СУБД
- операционка
- контейнер аппСервера
- различные шедулеры
--- даже класс Таймер в десктопе (выводит событие фонового потока в основной поток ГУИ)
Это в общем виде как то так
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075569
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczПро Оккама слышал? Какие проблемы в этой задаче решает GF?
В моем понимании именно для этой задачи особо никаких, если же в целом, то субьективно сейчас:
- все приложения лежат в одном месте, т.е. централизованно управляются (имхо, не критично, можно организовать и другими способами)
- имеет свой пул подключений к БД (имхо в текущем режиме тоже не факт, что есть острая необходимость использовать пул, единственный плюс - удобно, если меняются параметры подключения к БД, перенастроил подключение в пуле аппсервера и все)
- косвенно выполняет роль шедуллера, ну или контейнера для приложений, которые можно запускать по расписанию
В контексте именно этой отдельной задачи (да и для большинства, которые сейчас крутятся на нем) хватило бы и просто шедуллера, т.е. по-мне так GF - вообще лишнее звено ), но дабы было единообразие и все лежало в одном месте, все кладем туда )
Petro123нужно повесить задачи на другого)).
- СУБД отпадает,
- операционка тоже
- контейнер аппСервера (т.е. например TomCat?)
- различные шедулеры (тоже подошло бы имхо)
В итоге, во вс. случае пока, видимо все равно придется размещать их на гласфише.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075639
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS- контейнер аппСервера (т.е. например TomCat?)
какая разница. Хоть глассфишь
JDSно дабы было единообразие и все лежало в одном месте, все кладем туда
тебя бы админом))) Вот ты бы покрутился. У него 1500 всяких разных инструментов и все разные.
А ты от нечего делать все задачи в один контейнер)).
JDSединственный плюс - удобно, если меняются параметры подключения к БД, перенастроил подключение в пуле аппсервера и все)
как будто в десктопе или без пула коннект не так правится одним движением. Или ты об JNDI?
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075731
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS- все приложения лежат в одном месте, т.е. централизованно управляются (имхо, не критично, можно организовать и другими способами)

Более чем не критично. Любой файловый менеджер справится с этим ещe лучше.

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

То есть, нужна примитивная админка, но для этого взяли целый JEE контейнер.

JDS- косвенно выполняет роль шедуллера, ну или контейнера для приложений, которые можно запускать по расписанию

Вот как раз приложения нельзя запускать по расписанию. Можно запускать приложения, которые запускают задачи по расписанию.

JDS- операционка тоже

Почему? Что в винде, что в линуксе, нормальные скедулеры. Фигач туда чего хочешь.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075806
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczБолее чем не критично. Любой файловый менеджер справится с этим ещe лучше.
Согласен )
BlazkowiczВот как раз приложения нельзя запускать по расписанию. Можно запускать приложения, которые запускают задачи по расписанию.
Возможно, именно это и происходит в итоге, если называть вещи правильно )
BlazkowiczПочему? Что в винде, что в линуксе, нормальные скедулеры. Фигач туда чего хочешь.
1. В итоге это все выливается имхо в :) :
Petro123тебя бы админом))) Вот ты бы покрутился. У него 1500 всяких разных инструментов и все разные.
А ты от нечего делать все задачи в один контейнер)).
2. Как бы уже юзается аппсервер, ну вот туда ты бы и класть все подобного рода приложения.
3. Скорее всего, есть и приложения, которые отрабатывают/запускаются по тем же http-запросам, а не только по расписанию.

И по большому счету, вроде как все работает, вопрос только по поводу использования многопоточности в контексте возможных утечек. Попробую посмотреть еще раз, тынц, который давали выше )
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075811
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. вместо ExecutorService в JEE надо юзать ManagedExecutorService ?
(A ManagedExecutorService extends the Java™ SE ExecutorService to provide methods for submitting tasks for execution in a Java™ EE environment.)
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075849
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDSвопрос только по поводу использования многопоточности в контексте возможных утечек
когда переходим на уровень операционки, то поток заменяется разработчиком в процесс.
Ну, или процесс-приложение в вирт.машине.
Пришли опять к задаче - что ты там параллелишь? В контексте одной бизнес-задачи?
А не запускаешь 150 JVM процессов или 150 win32 процессов.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075914
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Пришли опять к задаче - что ты там параллелишь? В контексте одной бизнес-задачи?
А не запускаешь 150 JVM процессов или 150 win32 процессов.
Задача одна конечно, делаем как в SE:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
...
    int processors = Runtime.getRuntime().availableProcessors();               
    ExecutorService es = Executors.newFixedThreadPool(processors);
                
    for (int i = 1; i <= Tasks.length - 2 ; i++) 
       es.execute(new doTask(Tasks[i]));
                
    es.shutdown();

    if (!es.awaitTermination(10, TimeUnit.HOURS))
        err_message = "Threads didn't finish in 10 hours!";
...
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39075932
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS
Код: java
1.
2.
    for (int i = 1; i <= Tasks.length - 2 ; i++) 
       es.execute(new doTask(Tasks[i]));


Переменные со строчной, классы с заглавной, смотри, "Кутузов", не перепутай.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39078857
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,

Правой кнопкой щелкаете по проекту Вашего web приложения и выбираете пункт меню Debug. Если сервер (неважно какой) еще не запущен, то он будет автоматом запущен.


Второе. Установите NetBeans с поддержкой Glassfish. Не трогайте Services для отладки. Нет никакого смысла. Если сервер запущен в обычном режиме, а вы выполняете debug для web app, то NetBeans перезагрузит GF в debug моде.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39078861
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,

Не морочьте голову. Сначала поймите, что GF, когда Вы запустили web app в debug также стартует в debug mode. Если Вы остановили web app, то это не значит, что и GF остановится, потому, что он считает, что Вы или еще раз попытаетесь запустить в debug свое приложение или другое web приложение. Зачем Вам перезапускать GF? выпоните еще раз debug для web app или просто Run.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39078862
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JDS,

Несложно написать не менее дурацкое постое приложение без всяких серверов, у которого после запуска и последующей его якобы остановки будут выполняться порожденные Вами потоки. Потоки тоже надо правильно создавать и запускать. Не думайте, что некий сервер способен отследить запущенные Вами птоки. Хотя для серверов это просто неграмотно запускать обычные потоки, а не те, которые вам специальным образом позволяет делать сервер.
...
Рейтинг: 0 / 0
Эмуляция сервера приложений в NetBeans
    #39078942
JDS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery Shiskin, спасибо, все это уже выяснил вроде как, с дебагом разобрался.
Но вопрос по возможным утечкам в многопоточности в EE пока остается для меня открытым )
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Эмуляция сервера приложений в NetBeans
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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