Foros del Web » Creando para Internet » Flash y Actionscript »

FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

Estas en el tema de FLEX 4, JAVA, STRUTS, HIBERNATE, etc... en el foro de Flash y Actionscript en Foros del Web. Muy Buenas ante todo, es la primera vez que posteo, pero he seguido mucho vuestro foro y tutoriales asi que haya va la pregunta: Os ...
  #1 (permalink)  
Antiguo 22/10/2010, 09:22
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

Muy Buenas ante todo, es la primera vez que posteo, pero he seguido mucho vuestro foro y tutoriales asi que haya va la pregunta:

Os pongo en antecedentes, estoy desarrollando un proyecto con las siguientes tecnologias:
- Flex 4 : Capa visual
- JAVA: Contiene la logica de negocio de la aplicación
- Struts: Para clarificar patron MVC en mi cacao de aplicación
- Hibernate: Persistencia de Datos
- SSLEXT: Extension para struts del famoso protocolo de encriptación web HTTPS

Para la comunicación entre FLex y Java utilizo la libreria: FXstruts
[url=http://code.google.com/p/fxstruts/downloads/list][/url]

Todo desplegado sobre tomcat

El problema viene al introducir a mi desarrollo Flex, los parametros que paso al servlet desde la capa de FLex llegan perfectamente (En mi caso es la pagina de Login, llega el user y la pass al Servlet), hasta ahi todo correcto, el problema llega cuando toca redireccionar a otra pagina en mi caso, por utilizar struts lo determina el tag del archivo struts-config.xml:
Código:
<forward name="success" path="/Main.jsp">

Cuando tenia solamente java, lo hacia sin problemas, pero cuando he metido flex me salta la siguiente excepcion en el tomcat:
Código:
java.lang.IllegalStateException: getOutputStream() ya ha sido llamado para esta respuesta
	at org.apache.catalina.connector.Response.getWriter(Response.java:604)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
	at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:186)
	at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
	at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
	at org.apache.jsp.Main_jsp._jspService(Main_jsp.java:74)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:654)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:445)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:379)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
	at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
	at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:680)
la pagina de login es el HTML q genera el FLEX que lo renombro a .jsp para que pueda recibir atributos en caso de que la pass sea incorrecta(que tampoco lo hace... no puedo redireccionar)
El caso que una vez llegan los datos a java no puedo volver a flex.

Por dios que sepa alguien la solución estoy atrancadisimo.

GRACIAS!!!!!
  #2 (permalink)  
Antiguo 22/10/2010, 09:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

hola,la verdad es que no se para que usas tantas cosas ,si lo que quieres es tener la seguridad de que no te capturan el pass usa MD5 que para estas cosas es cojonudo, para seguridad el entorno de flash (flex en este caso), es muy buena y te ahorras el que te vuelvas loco con cosas como esta.
ahora bien, viendo el error que te manda "getOutputStream() ya ha sido llamado para esta respuesta" me imagino que ,ademas del archivo de configuracion xml,hay otra funcion que ha sido llamada para lo mismo o incluso que no se ha obtenido respuesta de la primera vez,no se,espero haberte ayudado en algun sentido,si pudieses poner algo del codigo del flex o java a lo mejor te podria ayudar mejor.
un saludo
  #3 (permalink)  
Antiguo 23/10/2010, 08:40
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

El tema del error, he encontrado una descripción en el manual que estaba siguiendo, a ver si alguno sabeis interpretar lo que dice ya que yo no lo entiendo.

[URL="http://www.adobe.com/devnet/flex/articles/flex_struts.html"]http://www.adobe.com/devnet/flex/articles/flex_struts.html[/URL]

La raiz de mi problema se encuentra aqui, que es la jsp donde se redirecciona despues de logarme:

In the JSP, I use fx:write to output the Java object in AMF:

Código:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/lib/fxstruts.jar" prefix="fx" %>
<fx:write name="test" type="amf" errors="true" />
The errors attribute has been set to true in the fx:write tag. Any validation errors will be nested within the result object. That is, on the Flex side, event.result will be an object with an errors property and will have the actual object in a property named result.

By default, fx:write outputs AMF which is a binary format. Be careful not to place stray newlines in the JSP as this will result in a "getOutputStream() has already been called" error. You can set type to xml to output XML instead of AMF.

Now that your back end is ready, let's create the Flex application.
  #4 (permalink)  
Antiguo 23/10/2010, 08:46
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

A otra cosa, he puesto el antiguo JSP que tenia, para ver si no me daba el error de getoutputStream y en efecto no me da, pero tampoco me redirecciona a la pagina .jsp que tengo definida en el struts, pero si entra en el JSP ya que los taglibs que tengo para crear la pagina dinamicamente me sueltan trazas en el tomcat.
Basicamente mi código esta basado del ejemplo.
  #5 (permalink)  
Antiguo 24/10/2010, 05:02
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

Cita:
Iniciado por sito1982 Ver Mensaje
El tema del error, he encontrado una descripción en el manual que estaba siguiendo, a ver si alguno sabeis interpretar lo que dice ya que yo no lo entiendo.

[URL="http://www.adobe.com/devnet/flex/articles/flex_struts.html"]http://www.adobe.com/devnet/flex/articles/flex_struts.html[/URL]

La raiz de mi problema se encuentra aqui, que es la jsp donde se redirecciona despues de logarme:

In the JSP, I use fx:write to output the Java object in AMF:

Código:
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/lib/fxstruts.jar" prefix="fx" %>
<fx:write name="test" type="amf" errors="true" />
The errors attribute has been set to true in the fx:write tag. Any validation errors will be nested within the result object. That is, on the Flex side, event.result will be an object with an errors property and will have the actual object in a property named result.

By default, fx:write outputs AMF which is a binary format. Be careful not to place stray newlines in the JSP as this will result in a "getOutputStream() has already been called" error. You can set type to xml to output XML instead of AMF.

Now that your back end is ready, let's create the Flex application.
prueba a poner en donde pone errors=true ponlo en false (por lo que puedo deducir de leer el ingles....) y comprobar que no hay saltos de linea en el jsp que devuelve el resultado,porque te dice que al ser binario no acepta espacios ni ná....
mira a ver y me cuentas
  #6 (permalink)  
Antiguo 02/11/2010, 07:35
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: FLEX 4, JAVA, STRUTS, HIBERNATE, etc...

Muchas Gracias, finalmente era eso, lo malo que estas librerias (FXstruts) no son comatibles con el Flex 4 ....
Una pena, pero muchas gracias!

Etiquetas: flex, hibernate, java, struts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.