I still cannot figure out why I am getting this error. However, if I do not use a stream result and use a result that returns a JSP then all works.
Any help would be greatly apprecietd! Thanks, Ken -----Original Message----- From: Hoying, Ken [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 12:46 PM To: Struts Users Mailing List Subject: RE: [S2] Advice on Handling CLOBs in Struts2 I have tried to accomplish this by creating an action with a stream result type. I am then including calling the action from with in my JSP page using the <s:action> tag. Unfortunately though, I am getting the following error: [2008-05-21 11:26:25,702] [http-0.0.0.0-8080-2] [ERROR] [] [ts2.components.ActionComponent]: Could not execute action: /catalog/ContractDetailsNote java.lang.IllegalStateException: getWriter() has already been called for this response at org.apache.catalina.connector.Response.getOutputStream(Response.java:573 ) at org.apache.catalina.connector.ResponseFacade.getOutputStream(ResponseFac ade.java:183) at org.apache.struts2.dispatcher.StreamResult.doExecute(StreamResult.java:2 19) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu pport.java:178) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct ionInvocation.java:348) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:253) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java :50) at org.apache.struts2.components.ActionComponent.executeAction(ActionCompon ent.java:255) at org.apache.struts2.components.ActionComponent.end(ActionComponent.java:1 55) at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSu pport.java:43) at org.apache.jsp.jsps.catalog.AjaxContractInfo_jsp._jspx_meth_s_005faction _005f0(AjaxContractInfo_jsp.java:413) at org.apache.jsp.jsps.catalog.AjaxContractInfo_jsp._jspx_meth_s_005fiterat or_005f0(AjaxContractInfo_jsp.java:297) at org.apache.jsp.jsps.catalog.AjaxContractInfo_jsp._jspx_meth_s_005fsort_0 05f0(AjaxContractInfo_jsp.java:247) at org.apache.jsp.jsps.catalog.AjaxContractInfo_jsp._jspx_meth_s_005felse_0 05f0(AjaxContractInfo_jsp.java:200) at org.apache.jsp.jsps.catalog.AjaxContractInfo_jsp._jspService(AjaxContrac tInfo_jsp.java:99) 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.ja va:373) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatc her.java:654) at org.apache.catalina.core.ApplicationDispatcher.processRequest(Applicatio nDispatcher.java:445) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp atcher.java:379) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat cher.java:292) at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletD ispatcherResult.java:139) at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSu pport.java:178) at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultAct ionInvocation.java:348) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:253) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doInterce pt(DefaultWorkflowInterceptor.java:221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me thodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.TimerInterceptor.invokeUnderTiming(T imerInterceptor.java:125) at com.opensymphony.xwork2.interceptor.TimerInterceptor.intercept(TimerInte rceptor.java:112) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(Vali dationInterceptor.java:150) at org.apache.struts2.interceptor.validation.AnnotationValidationIntercepto r.doIntercept(AnnotationValidationInterceptor.java:48) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me thodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.TimerInterceptor.invokeUnderTiming(T imerInterceptor.java:125) at com.opensymphony.xwork2.interceptor.TimerInterceptor.intercept(TimerInte rceptor.java:112) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept (ConversionErrorInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(Pa rametersInterceptor.java:167) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me thodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercep t(StaticParametersInterceptor.java:105) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInt erceptor.java:83) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(Chaini ngInterceptor.java:115) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterc eptor.java:143) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(Prepa reInterceptor.java:121) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(Me thodFilterInterceptor.java:86) at com.premierinc.sca.interceptor.ScaPrepareInterceptor.intercept(ScaPrepar eInterceptor.java:42) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(Servle tConfigInterceptor.java:170) at com.premierinc.sca.interceptor.ServletConfigEnhancedInterceptor.intercep t(ServletConfigEnhancedInterceptor.java:73) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.premierinc.sca.interceptor.UserInterceptor.intercept(UserInterceptor .java:129) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.premierinc.sca.interceptor.HibernateSessionInterceptor$FilterChainIn voker.doFilter(HibernateSessionInterceptor.java:145) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFil terInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequ estFilter.java:75) at com.premierinc.sca.interceptor.HibernateSessionInterceptor.intercept(Hib ernateSessionInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercep t(ExceptionMappingInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultAct ionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerS tack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvo cation.java:221) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java :50) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:5 04) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher .java:419) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:206) at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContex tCleanUp.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilte r.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tionFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.java:175) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAs sociationValve.java:179) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticator Base.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.j ava:84) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConn ectionValve.java:157) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2 62) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:84 4) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process( Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) at java.lang.Thread.run(Thread.java:595) -----Original Message----- From: Hoying, Ken [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 21, 2008 9:42 AM To: user@struts.apache.org Subject: [S2] Advice on Handling CLOBs in Struts2 Generally when working with Struts2, we have been loading a domaon object from the database in our action and then sending then referencing the properties as needed from the JSP to generate our output. However, we now what could potentially be a large amount of data stored in a CLOB. Using the method that we have been using to date, we would have to place the entire CLOB in a string in the action and then access it from the JSP. Obviously, we would like to avoid doing that. I was wondering if anyone else had come across this and how they had managed to solve it. How do we stream the content of the CLOB? Thank you! Ken --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]