forum.bitel.ru
http://forum.bitel.ru/

CAPTCHA
http://forum.bitel.ru/viewtopic.php?f=22&t=6617
Страница 1 из 1

Автор:  Феанор [ 29 мар 2012, 11:09 ]
Заголовок сообщения:  CAPTCHA

Подскажите как родную каптчу использовать в своем экшне?

Написал свой экшн для личного кабинета, прикрутил к нему стороннюю капчу (симплкапча), чтобы по запросу типа webexecuter?action=MyAction&generateCaptcha=true отдавал картинку капчки и в сессии выставлял ключ... все работает, но в логах есть ошибка
Код:
- server 03-29/13:02:38 ERROR [http-8080-1] LoggingPrintStream - java.lang.IllegalStateException: getOutputStream() has already been called for this response   

я так понимаю дальше в методе doGet() вызвается метод doAction который я написал, и там используется response.getOutputStream - который я уже использовал чтобы отдать картинку... подскажите как правильно сделать, может родную капчу использовать как то (благо методы в апи есть)

Автор:  Cromeshnic [ 29 мар 2012, 11:30 ]
Заголовок сообщения:  Re: CAPTCHA

А такая строчка есть в коде экшена?
Код:
//Нужно, чтобы отключить стандартную логику response-а сервлета BGBilling (v5.1 +)
this.request.setAttribute("contentType", ActionResultContentType.binary);

Автор:  Феанор [ 29 мар 2012, 12:34 ]
Заголовок сообщения:  Re: CAPTCHA

Cromeshnic писал(а):
А такая строчка есть в коде экшена?
Код:
//Нужно, чтобы отключить стандартную логику response-а сервлета BGBilling (v5.1 +)
this.request.setAttribute("contentType", ActionResultContentType.binary);

не было, добавил - ошибки пропали :)))

Автор:  Akhmat [ 28 май 2015, 16:45 ]
Заголовок сообщения:  Re: CAPTCHA

Феанор
Можешь скинуть пример как с симплкапчей разобрался.
Пробую вот, только сервлетом, но там ошибка
Код:
    <servlet>
        <servlet-name>SimpleCaptcha</servlet-name>
        <servlet-class>nl.captcha.servlet.SimpleCaptchaServlet</servlet-class>
        <init-param>
            <param-name>width</param-name>
            <param-value>250</param-value>
        </init-param>
        <init-param>
            <param-name>height</param-name>
            <param-value>75</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>SimpleCaptcha</servlet-name>
        <url-pattern>/stickyImg</url-pattern>
    </servlet-mapping>

вызываю урл /bgbilling/stickyImg
ошибка
Код:
05-28/05:52:57 ERROR ["http-bio-/0.0.0.0-8080"-exec-1] [SimpleCaptcha] - Servlet.service() for servlet [SimpleCaptcha] in context with path [/bgbilling] threw exception [Servlet execution threw an exception] with root cause
java.lang.VerifyError: (class: nl/captcha/gimpy/RippleGimpyRenderer, method: gimp signature: (Ljava/awt/image/BufferedImage;)V) Incompatible argument to function
   at nl.captcha.Captcha$Builder.gimp(Captcha.java:171)
   at nl.captcha.servlet.SimpleCaptchaServlet.doGet(SimpleCaptchaServlet.java:65)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140)
   at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
   at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
   at java.lang.Thread.run(Thread.java:662)

Автор:  Akhmat [ 29 май 2015, 16:58 ]
Заголовок сообщения:  Re: CAPTCHA

использовал другую капчу. симпл не захотела с биллингом работать добровольно

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/