| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Не запускается Simplecaptcha |
| Автор: KaD 21.1.2008, 16:49 |
| Всем привет Скачал себе Simplecaptcha. При запуске tomcat с терминала на тестовой странице не отображает картинку и выдает вот такую ошибку java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it. sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(Unknown Source) nl.captcha.text.imp.DefaultWordRenderer.renderWord(Unknown Source) nl.captcha.servlet.DefaultCaptchaIml.createImage(Unknown Source) nl.captcha.servlet.CaptchaServlet.doGet(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) Нашел в доках, что надо поставить опциях java -Djava.awt.headless=true Прописав в переменных окружения JAVA_OPTS="-Djava.awt.headless=true" export JAVA_OPTS Появилась следующая ошибка (тоже самое только без первой строки) java.awt.HeadlessException sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(Unknown Source) nl.captcha.text.imp.DefaultWordRenderer.renderWord(Unknown Source) nl.captcha.servlet.DefaultCaptchaIml.createImage(Unknown Source) nl.captcha.servlet.CaptchaServlet.doGet(Unknown Source) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) если запускать tomcat из под винды или из под иксов тогда все работает без проблем. Полазил по нету нашел что можно запускать используя Xvfb. Но как с ним обращатся ни как въехать не могу. Кто знает, что надо еще прописать, чтобы этот код мог работать в случаях когда tomcat запускается не из под иксов? Вот url от куда качал http://simplecaptcha.sourceforge.net/ |
| Автор: tux 21.1.2008, 18:55 |
| http://forum.vingrad.ru/index.php?showtopic=49035&view=findpost&p=384539 |
| Автор: KaD 22.1.2008, 12:51 | ||||
| Разобрался. На сколько я понял вся идея с перенаправлением на виртуальный дисплей, когда не запущены иксы. Кому интересно, делал так: Запускаю в одном терминале
(где 1 как я понял id виртуального дисплея) Во втором терминале проверил процесс Xvfb, присутствует. Выставляю переменную окружения
и затем выполняю запуск tomcat. После проведенных действий все заработало. Потом это все заворачивается в скрипт и в автозапуск. |
| Автор: ochnev 9.2.2008, 19:35 |
| Вот решение получше: http://javaboutique.internet.com/tutorials/captcha/index-2.html |