воскресенье, февраля 21

сброс (flush) локального DNS кеша

в Windows в командной строке:
ipconfig /flushdns

в Linux в терминале:
sudo /sbin/service nscd restart
если sudo не настроен (всякое бывает :) ), то так:
su -c '/sbin/service nscd restart'

вторник, февраля 9

красивый Eclipse

Eclipse стал по-новогоднему красивый :)

Ant-скрипт для деплоинга приложений на сервер приложений

При разработке бывают моменты, когда требуется загрузить архив приложения на сервер. Одним из вариантов для этого является "забрасывание" архива приложения в каталог на сервере, где его автоматически "подхватит" например tomcat или jboss

первым и "простым" способом для этого является задача scp для ant-скрипта.

scp file="${dir.build}/${file.war}" trust="true" password="${ssh.pwd}" todir="${ssh.user}@${ssh.host}:${tomcat.deploy}" /

но... через какое-то
время сталкиваешься с "полтергейстом", когда приложение загрузилось, а деплоиться "не желает".
небольшой экспресс-анализ показал, что сервер подхватывает архив раньше, чем он полностью "залился" на сервер.
для решения данной проблемы можно пойти обходным путём - сперва скопировать архив во временный каталог, или с другим расширением, а после уже локально переместить его в нужное место

target name="scp-copy"
scp file="${dir.build}/${file.war}" trust="true" password="${ssh.pwd}" todir="${ssh.user}@${ssh.host}:${tomcat.tmp.dir}" /
sshexec host="${ssh.host}" username="${ssh.user}" password="${ssh.pwd}" trust="true" command="mv ${tomcat.base}/${file.war} ${tomcat.base}/${tomcat.root}/ROOT.war"
/target

Преимущество подхода с промежуточным копированием так же в том, что если в процессе загрузки произойдёт сбой связи с сервером, то вы не потеряете текущее приложение, т.к. ранее загруженный архив не будет перезаписан.

понедельник, февраля 8

Удалённая перезагрузка Windows-машины из Linux

Для удалённой перезагрузки Windows-машины из Linux, понадобится установленный пакет samba-common

команда для выполнения:
net rpc shutdown -r -C "комментарий" -f -I "netname" -U "username" -t "N"

где параметры обозначают следующее:

-r или -reboot - перезагрузка компьютера вместо выключения
-f или -force - принудительное выполнение
-I - сетевое имя машины, или её IP адрес
-U - имя пользователя, имеющего соответствующие права на данной машине
-t или -timeout="N" - задержка до начала выключения/перезагрузки (по умолчанию равна 20 секундам)
-C или -comment="комментарий" - комментарий, показываемый в информационном окне

при выполнении команды, появится запрос пароля для пользователя username. Можно пароль указать сразу, введя имя пользователя в формате "username%password"

четверг, февраля 4

NetBeans+Maven+библиотеки

Использование Maven позволяет делать многое при разработке проекта. Об этом писалось уже не раз на просторах интернета. Я же напишу небольшую толику, чего я не нашел на русскоязычных просторах - про добавление своих JAR-библиотек в среде NetBeans IDE в Maven-проект.

Пример демонстрирует использование внешней библиотеки NCSO.jar для подключения к Lotus Domino через DIIOP. Проект создаём в NetBeans 6.8

итак, поехали


Создаём простой Maven-проект (для примера его будет достаточно :) )



Теперь добавляем в проект завимость на внешнюю библиотеку NCSO.jar. Так как этой библиотеки нет в репозитариях, то просто указываем сами группу, артифакт и версию библиотеки. В данном случае, я использую библиотеку, взятую с сервера Lotus Domino версии 8.5.1


Теперь можно загрузить сам jar-файл в локальный репозитарий. Для этого в контексном меню у зависимости выберем пункт "Manually install artifact" и укажем путь до библиотеки. По завершению инсталяции, данная библиотека будет добавлена в локальный репозитарий и может быть использована в последующих проектах без дополнительной инсталяции.





ЗЫ: посмотреть все скриншоты можно в альбоме "Blogspot:002", а скачать архив проекта на iFolder