Hi,
I am trying to implement Ajax File Upload using JQuery's Form Plugin which
uses iframe internally. JQuery's Form Plugin doc says it support response
type of HTML or XML.

Without Ajax, my file upload works fine. I am not sure what result type to
choose for ajax response.

If I use type="stream" then I am getting below exception... Any idea how to
resolve this issue...
I saw ajax file upload plug-in's example struts.xml and it is using type as
httpheader but I could not understand how to use that.
I have few validations like file type, file size etc and I want to stream
back these validation messages..

   <action name="myPhotoUpload_*" method="{1}"
class="com.rawatsoft.write4smile.webapp.action.FileUploadAction">
            <result name="input"
type="dispatcher">/WEB-INF/jsp/MyPhoto.jsp</result>
            <result name="success" type="stream">
                <param name="contentType">text/html</param>
                <param name="inputName">inputStream</param>
            </result>
  </action>


[WRITE4SMILE] ERROR [2008/12/05 09:53:59] | Servlet.service() for servlet
default threw exception
java.lang.IllegalArgumentException: Can not find a java.io.InputStream with
the name [inputStream] in the invocation stack. Check the <param
name="inputName"> tag specified for this action.
    at
org.apache.struts2.dispatcher.StreamResult.doExecute(StreamResult.java:189)
    at
org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
    at
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:348)
    at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:253)
    at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
    at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
    at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
    at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
    at java.lang.Thread.run(Unknown Source)

Reply via email to