Показаны сообщения с ярлыком Eclipse. Показать все сообщения
Показаны сообщения с ярлыком Eclipse. Показать все сообщения

среда, 19 августа 2009 г.

Запуск JSTL в Eclipse Dynamic Web Project

Оказывается не все так просто, если запускать Tomcat под Eclipse.
Если в Eclipse создать Dynamic Web Project, то простое добавление
jstl.jar и standard.jar в WEB_INF/lib может не помочь,
даже если в Java Build Path они есть.
При этом, если экпортировать .war, то в Tomcat запустится нормально.
Не запускается именно из-под Eclipse.

Помогло следующее:
при вызове контекстного меню в Run As -> Run configuration
выбирает нужный сервер из списка Apache Tomcat (перед этим нужно остановить)
справа выбираем сервер и в закладке Classpath и добавляем (Add jars):
jstl.jar, standard.jsr, servlet-api.jar, jsp-api.jar, el-api.jar

воскресенье, 5 июля 2009 г.

Установка Subversion на OpenSuse 11

Кратко, просто и с примером:

Установка Subversion возможна как на отдельный компьютер, так и на сервер.
В данном примере обсуждается установка на сервер на базе Apache2.

1. Первым делом нужно установить следующие пакеты:
apache2, apache2-prefork, libapr1, libapr-util1, neon, subversion, subversion-server.

2. Активируем модули dav, dav_svn (под рутом)
a2enmod dav
a2enmod dav_svn

3. на сервере должен появиться файл с примерами настроек конфигурации Subversion.
По умолчанию этот файл не запустится, так как конфигурацию нужно настроить вручную.
В нем есть примеры настроек. Если веб-сервер Apache использует виртуальные хосты (Virtual Hosts),
то, если просто включить этот файл в общий файл конфигурации Apache, то будет предоставлен доступ к
системе управления версиями на всех виртуальных хостах. В большинстве случаев такого нужно избегать.
Для решения этого вопроса можно либо включить ссылку на файл конфигурации (Include /путь/к/файлу) или
добавить эти строки непосредственно в настройку виртуального хоста.
Я выбрал второй вариант, поскольку удобней сразу видеть настройки конкретного виртуального хоста
без "пробежки" по файловой системе.

Итак, предположим, что я хочу видеть по адресу svn.mydomain.com все свои проекты (репозитарии).
Вот пример конфигурации виртуального хоста:


Замечания:
  • замените svn.mydomain.com на ваш домен
  • не нужно добавлять DocumentRoot - могут быть конфликты
  • по умолчанию в примере после установки стоит параметр - SVNParent. Корректно - SVNParentPath
  • конфигурация настроена так, чтобы все могли видеть список проектов, но для проекта
  • myproject система запросит логин и пароль
  • если не указать SVNListParentPath on, вместо списка проектов, будет вываливаться:
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
4. Дальнейшие настройки (под рутом)
mkdir -p /srv/svn/myproject # создаем каталон для нашего проекта
mkdir /srv/svn/auth # папка для хранения файла пользователей
touch /srv/svn/auth/svn.mydomain.com.htpasswd # сам файл, в котором хранятся пользователи для доступа к SVN
chown root:www /srv/svn/auth/svn.mydomain.com.htpasswd # права доступа
chmod 640 /srv/svn/auth/svn.mydomain.com.htpasswd # права доступа
htpasswd2 /srv/svn/auth/svn.mydomain.com.htpasswd my_user # добавляем пользователя
rcapache2 restart # перезапуск Apache2

После удачного перезапуска по адресу http://svn.mydomain.com можно просмотреть наш репозитарий, который пока пустой

5. Настраиваем проект myproject (под рутом)
svnadmin create /srv/svn/repos/myproject
-- команда создаст структуру каталогов для этого проекта
(Если нужно удалить, просто удаляем с помощью команды rm )
chown -R wwwrun:www /srv/svn/repos/myproject/
-- права доступа
svn import /path/to/project/files http://svn.mydomain.com -m "initial import"
-- команда импортирует необходимую структуру файлов с Subversion
(Если не указать путь к /path/to/project/files, то будет импортироваться текущая директория)


6. Теперь можно на удаленных компьютерах делать checkout
svn checkout http://svn.mydomain.com

Все.
Некоторая информация была переведена с этого сайта
Более подробную информацию о Subversion можно прочитать/скачать тут.
На этом сайте можно найти и на русском, но кто знает английский, лучше на английском -
точнее и новее информация.

PS. Современные IDE типа NetBeans и Eclipse имеют модули для работы с SVN.
Для Eclipse я выбрал Subclipse. об установке можно прочитать по этой ссылке (с рисунками ;) )

пятница, 7 ноября 2008 г.

решение проблемы: java.lang.OutOfMemoryError: PermGen space


При возникновении ошибки java.lang.OutOfMemoryError: PermGen space
Eclipse
может просто неожиданно завершить работу и предложить просмотреть логи.
Хочу заметить, что я впервые встретился с этой ошибкой, когда начал использовать Eclipse для рисования UML диаграмм. То есть в тот момент, когда Eclipse начал использовать плагины org.eclipse.gef и org.eclipse.emf,
а эти плагины есть также в Eclipse IDE for Java EE Developers. В этом можно убедиться тут.
Также эта ошибка может появляться при использовании HQL запросов, когда активно используется Hibernate.

Почему возникает эта ошибка сейчас я описывать не буду. Об этом можно почитать, например, в этой статье (на английском)

И так, если кратко, то решить быстро это проблему можно так:
в директории, где находится eclipse или eclipse.exe (для Windows) нужно найти файл eclipse.ini и открыть в текстовом редакторе, в котором нужно добавить/отредактировать следующие строки:
-Xms512m
-Xmx512m
-XX:PermSize=512m
-XX:MaxPermSize=512m

Это пример моих настроек. Настраивайте параметры в зависимости от объема памяти на вашем компьютере. Кратко об этих параметрах:
Xms - это минимальный объем выделяемой памяти (кучи - heap)
Xmx - это максимальный объем выделяемой памяти (кучи - heap)
XX:PermSize - это начальный размер permanent generation (о нем подробней позже...). Он создается в дополнение к объему Xms.
XX:MaxPermSize - максимальный размер permanent generation.

Теперь осталось запустить eclipse c ключем -clean
eclipse -clean
(Примечание: начиная с версии 3.4 (GANYMEDE) запускать -clean не нужно)

НО! Все-таки нужно убедиться что эти параметры задействованы. Дело в том, что на некоторых Unix* ОС настройки файла eclipse.ini не срабатывают, даже если описаны правильно.
Для того, чтобы убедиться изменения в настройках можно просмотреть:
Help -> About Eclipse Platform -> Configuration details
и смотрим строку eclipse.vmargs=

Чтобы окончательно победить проблему есть 2 способа:

1-й способ. Window -> Preferences -> Java -> Installed JREs -> выбор нашего JRE -> Edit и в строке Default VM Arguments пишем
-vmargs -Xms512m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=512m

2-й способ. Написать скрипт запуска eclipse. Например, в создать файл eclipse.sh, дать права на запуск () и прописать в файле:
#!/bin/bash

eclipse -vmargs -Xms512m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=512m

Надеюсь, этот баг больше возникать не будет ;)
О дополнительных способах борьбы с этой проблемой можно почитать в этой статье

PS Доп. материал:

MaxPermSize and how it relates to the overall heap

Tuning Garbage Collection with the 5.0 Java[tm] Virtual Machine

Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

Java Performance Documentation

Tuning Java Virtual Machines (JVMs)

Memory Analyzer (MAT)