--- Pablo Vázquez Blázquez <[EMAIL PROTECTED]> wrote: > I send you my struts-config.xml file, but it works ok. If I delete my > "s:file" from my form, everything works fine.
The error happens after you submit, correct? I guess I'd want to see the JSP and the action code, then; the configuration seems okay. Have you tried it without setting the "struts.multipart.parser" constant? The default value of that is "jakarta", not a classname; it's worth a shot, anyway. d. > > To see the action involved search: <!-- HERE IS THE PROBLEM --> > > > <?xml version="1.0" encoding="UTF-8" ?> > <!DOCTYPE struts PUBLIC > "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" > "http://struts.apache.org/dtds/struts-2.0.dtd"> > > <struts> > > <constant name="struts.enable.DynamicMethodInvocation" value="false" /> > <constant name="struts.devMode" value="true" /> <!-- TODO: cambiar a > false en produccion --> > <constant name="struts.action.extension" value="do"/> > <constant name="struts.ui.theme" value="simple"/> > <constant name="struts.multipart.parser" > > value="org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest"/> > > > <!-- Internacionalizacion para los tags de struts 2 --> > <constant name="struts.custom.i18n.resources" > value="admintool.http.view.messages.Messages"/> > > <include file="struts-default.xml"/> > > <!-- ===== Paquetes ===== --> > <package name="scheduler" extends="struts-default"> > > <!-- ===== Resultados globales ===== --> > <result-types> > <result-type name="tiles" > class="org.apache.struts2.views.tiles.TilesResult"/> > </result-types> > > <!-- ===== Interceptors ===== --> > <interceptors> > > <interceptor name="session" > > class="admintool.http.controller.interceptors.SessionInterceptor" /> > > <interceptor name="login" > > class="admintool.http.controller.interceptors.AuthenticationInterceptor" /> > > <interceptor-stack name="defaultLoginStack"> > <interceptor-ref name="exception" /> > <interceptor-ref name="alias" /> > <interceptor-ref name="servlet-config" /> > <interceptor-ref name="session" /> > <interceptor-ref name="login" /> > <interceptor-ref name="prepare" /> > <interceptor-ref name="i18n"/> > <interceptor-ref name="chain" /> > <interceptor-ref name="model-driven" /> > <interceptor-ref name="fileUpload" /> > <interceptor-ref name="static-params" /> > <interceptor-ref name="params" /> > <interceptor-ref name="conversionError" /> > <interceptor-ref name="validation" /> > <interceptor-ref name="workflow" /> > </interceptor-stack> > > <interceptor-stack name="defaultInsecureStack"> > <interceptor-ref name="exception" /> > <interceptor-ref name="alias" /> > <interceptor-ref name="servlet-config" /> > <interceptor-ref name="session" /> > <interceptor-ref name="prepare" /> > <interceptor-ref name="i18n"/> > <interceptor-ref name="chain" /> > <interceptor-ref name="model-driven" /> > <interceptor-ref name="fileUpload" /> > <interceptor-ref name="static-params" /> > <interceptor-ref name="params" /> > <interceptor-ref name="conversionError" /> > <interceptor-ref name="validation" /> > <interceptor-ref name="workflow" /> > </interceptor-stack> > > <!-- Sample file upload stack --> > <interceptor-stack name="fileUploadStack"> > <interceptor-ref name="fileUpload"/> > <interceptor-ref name="basicStack"/> > </interceptor-stack> > > </interceptors> > > <!-- > Make the defaultLoginStack the default one used > for all actions unless otherwise configured. > --> > <default-interceptor-ref name="defaultLoginStack" /> > > <!-- ===== Resultados globales ===== --> > <!-- se corresponden con los valores por defecto devueltos por > Action (ej: error, login) --> > <global-results> > <result name="login" > type="redirect-action">ShowAuthentication</result> > <result name="MainPage" > type="redirect-action">Workspace</result> > <result > name="error">/HTML/tiles/base/InternalError.jspx</result> > <result name="exito">/HTML/tiles/base/SuccessPage.jspx</result> > </global-results> > > <!-- ===== Secciones principales ===== --> > <action name="Workspace"> > <result type="tiles">.Workspace</result> > </action> > > <action name="Scheduler"> > <result type="tiles">.Scheduler</result> > </action> > > <action name="Configuration"> > <result type="tiles">.Configuration</result> > </action> > > <!-- ===== Autenticacion ===== --> > <!-- Accion que muestra el formulario de autenticacion --> > <action name="ShowAuthentication" > > class="admintool.http.controller.actions.users.ShowAuthenticationAction"> > <interceptor-ref name="defaultInsecureStack"/> > <result type="tiles">.Login</result> > </action> > > <!-- Ejecuta la accion de login. Si hay fallos, vuelve a la > misma pagina --> > <action name="Login" > > class="admintool.http.controller.actions.users.LoginAction"> > <interceptor-ref name="defaultInsecureStack"/> > <result name="input" type="tiles">.Login</result> > </action> > > <!-- Cierra la sesion y vuelve a la pagina de login --> > <action name="Logout" > > class="admintool.http.controller.actions.users.LogoutAction"> > <interceptor-ref name="defaultInsecureStack"/> > </action> > > <!-- ===== Configuration ===== --> > > <action name="CancelConfiguration"> > <result>/HTML/tiles/configuration/ConnectionInfo.jspx</result> > </action> > > <action name="ShowChangePassword"> > <result>/HTML/tiles/configuration/ChangePassword.jspx</result> > </action> > > <action name="ChangePassword" > > class="admintool.http.controller.actions.configuration.ChangePasswordAction"> > <result > name="input">/HTML/tiles/configuration/ChangePassword.jspx</result> > </action> > > <action name="ShowChangeServer"> > <result>/HTML/tiles/configuration/ChangeServer.jspx</result> > </action> > > <action name="ChangeServer" > > class="admintool.http.controller.actions.configuration.ChangeServerAction"> > <result > name="input">/HTML/tiles/configuration/ChangeServer.jspx</result> > </action> > > <action name="ShowChangeRemotePort"> > > <result>/HTML/tiles/configuration/ChangeRemotePort.jspx</result> > </action> > > <action name="ChangeRemotePort" > > class="admintool.http.controller.actions.configuration.ChangeRemotePortAction"> > <result > name="input">/HTML/tiles/configuration/ChangeRemotePort.jspx</result> > </action> > > <action name="ShowChangeMail"> > <result>/HTML/tiles/configuration/ChangeMail.jspx</result> > </action> > > <action name="ChangeMail" > > class="admintool.http.controller.actions.configuration.ChangeMailAction"> > <result > name="input">/HTML/tiles/configuration/ChangeMail.jspx</result> > </action> > > <action name="ShowChangeThreads"> > === message truncated === --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]