Problema FCKeditor + sitemesh + struts

9 respostas
C

Pessoal, procurei muito e ja matutei bastante sobre esse problema e então resolvi recorrer a ajuda de vcs.
Estou tentando usar em minha aplicação (TOMCAT5+STRUTS1+JDBC(MYSQL)+SITEMESH2)um JavaScript WYSIWYG editor como o FCKeditor (e tb tentei o openwysiwyg) mas não está dando certo. O erro que recebo ao tentar abrir alguma jsp com o recurso do FCKeditor ou alguma popup do openwysiwyg é o seguinte :

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:599)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195)
	at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:111)
	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:325)
	at org.apache.jasper.runtime.JspWriterImpl.write(JspWriterImpl.java:341)
	at org.apache.jsp.decorators.index_jsp._jspService(index_jsp.java:401)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
	at com.opensymphony.module.sitemesh.filter.PageFilter.applyDecorator(PageFilter.java:169)
	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:68)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:619)

Não tenho preferencia por nenhum editor, quero apenas um que funcione! heheeh
Alguém ja viu esse problema antes? Alguma luz?
Valeuuss!

9 Respostas

C

Bom, consegui resolver!

Para os interessados:
Mudei o decorators.xml do sitemesh para responder apenas para as actions

<decorators defaultdir="/decorators">
 <decorator name="main" page="index.jsp">
 	<pattern>*.do</pattern>
 </decorator>
</decorators>

valeu! :wink:

C

Bom, agora vou deixar a minha contribuição para ninguém ficar perdendo tempo com erros bobos!

Tutorial: Instalação do FCKeditor com Java Web

Site do projeto FCKeditor: http://www.fckeditor.net
Arquivos necessários: FCKeditor-2.3.zip
FCKeditor_2.4.3.zip

1)Descompacte o arquivo FCKeditor_2.4.3.zip (ele irá criar uma pasta chamada “fckeditor”).
renomeie a pasta para “FCKeditor” e coloque esta pasta na raiz do seu projeto (ex:/web)

2)Abra o arquivo FCKeditor-2.3.zip e vá em web\WEB-INF\lib e pegue os dois arquivos (FCKeditor-2.3.jar e commons-fileupload.jar)
Coloque-os no seu projeto em \WEB-INF\lib.

3)Dentro do mesmo arquivo (FCKeditor-2.3.zip) pegue em \src o arquivo FCKeditor.tld e coloque em sua pasta de tlds (ex. WEB-INF\tags)

4)No web.xml da sua aplicação coloque o trecho dentro de :

<!-- FCKeditor Connector -->
		<servlet>
	        <servlet-name>Connector</servlet-name>
	        <servlet-class>com.fredck.FCKeditor.connector.ConnectorServlet</servlet-class>
	        <init-param>
	                <param-name>baseDir</param-name>
	                <param-value>/arquivos/</param-value>
	        </init-param>
	        <init-param>
	                <param-name>debug</param-name>
	                <param-value>false</param-value>
	        </init-param>
	        <load-on-startup>1</load-on-startup>
		</servlet>
		<servlet-mapping>
	        <servlet-name>Connector</servlet-name>
	        <url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
		</servlet-mapping>


		<!-- FCKeditor SimpleUploader -->
		<servlet>
	        <servlet-name>SimpleUploader</servlet-name>
	        <servlet-class>com.fredck.FCKeditor.uploader.SimpleUploaderServlet</servlet-class>
	        <init-param>
	                <param-name>baseDir</param-name>
	                <param-value>/arquivos/</param-value>
	        </init-param>
	        <init-param>
	                <param-name>debug</param-name>
	                <param-value>true</param-value>
	        </init-param>
	        <init-param>
	                <param-name>enabled</param-name>
	                <param-value>true</param-value>
	        </init-param>
	        <init-param>
	                <param-name>AllowedExtensionsFile</param-name>
	                <param-value></param-value>
	        </init-param>
	        <init-param>
	                <param-name>DeniedExtensionsFile</param-name>
	                <param-value>php|php3|php5|phtml|asp|aspx|ascx|jsp|cfm|cfc|pl|bat|exe|dll|reg|cgi</param-value>
	        </init-param>
	        <init-param>
	                <param-name>AllowedExtensionsImage</param-name>
	                <param-value>jpg|gif|jpeg|png|bmp</param-value>
	        </init-param>
	        <init-param>
	                <param-name>DeniedExtensionsImage</param-name>
	                <param-value></param-value>
	        </init-param>
	        <init-param>
	                <param-name>AllowedExtensionsFlash</param-name>
	                <param-value>swf|fla</param-value>
	        </init-param>
	        <init-param>
	                <param-name>DeniedExtensionsFlash</param-name>
	                <param-value></param-value>
	        </init-param>
	        <load-on-startup>1</load-on-startup>
		</servlet>

		<servlet-mapping>
  			<servlet-name>SimpleUploader</servlet-name>
  			<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
		</servlet-mapping>

Obs:Mude o que quiser ai, só saiba o que esta fazendo.

5)No JSP coloque assim(exemplo):

<%-- Importacao da tag-lib do FCKeditor --%>
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>

<html>
<head>
<title>Teste FCKeditor</title>
</head>
<body>

<%-- Objeto do FCKeditor (verifique a tag-lib para mais informacoes) --%>
<FCK:editor id="texto" width="95%" height="500" toolbarSet="Default">
	<p>Teste <b>FCKeditor</b></p>
</FCK:editor>

</body>
</html>

6)Se estiver utilizando o sitemesh, tome cuidado para que ele responda apenas para as servlets certas, se não o FCKeditor
não irá funcionar corretamente.
Por exemplo, se estiver no struts, no decorator.xml coloque o padrao certo das actions:
<pattern>*.do</pattern>
e não <pattern>*</pattern>
Foi ai que eu apanhei pra descobrir :roll:

Abraço!

jomello_br

Olá checkboy beleza??? :slight_smile:

Vem cá, voce sabe como eu faço para definir o Skin?

Por Exemplo o office2003??

Se faço como javascript vai na boa, mas queria poder definir no JSP

<FCK:editor
id=“conteudo”
width=“100%”
height=“250px”
toolbarSet=“Default”>
</FCK:editor>

Abraços

Jomello

bzy

Um exemplo funcional.

http://www.guj.com.br/posts/list/0/31746.java#468518

Paulao

Ola,

Configurei exatamente igual o exemplo do tutorial porém o upload de imagens não esta funcionando. Verifiquei na pasta do editor e verifiquei que os diretorios a baixo nao existem:

&lt;servlet-mapping&gt;
        &lt;servlet-name&gt;Connector&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/fckeditor/editor/filemanager/browser/default/connectors/jsp/connector&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;SimpleUploader&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/fckeditor/editor/filemanager/upload/simpleuploader&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;

Estou usando a ultima versão do fckeditor. Alguem sabe como resolver esse problema? estou garimpando pela net mas num to achando nada a respeito.

valew

C

Paulão, espero que ja tenha resolvido o problema, mas tente observar que esses caminhos são case sensitive.
Veja bem como estão esses caminhos no seu projeto.

jomello_br, desculpe, mas não lembro mais como resolver o Skin. Deixei o struts pelo JSF e agora nem lembro mais ;(

Abraços

Paulao

Ow meu brother consegui sim… deu mó trabalhao mas consegui…

o problema todo era na configuração no filtro do struts 2. Mas agora ta tudo ok…

valew…

abraços.

L

Bom dia checkboy , segui seu tutorial mas ta dando erro qndo compilo o site.

Se puder me ajudar a descascar esse abacaxi, fico grato. Estou usando o Net Beans 6.5 e Tom 6.18

R

eu tmb tive problemas com o filtro do struts…
quem estiver tendo problemas com isso talvez isso ajude:
http://www.guj.com.br/posts/list/124589.java#673400

Criado 13 de setembro de 2007
Ultima resposta 28 de abr. de 2009
Respostas 9
Participantes 6