Was this debugging statement executed?

           log.debug("Anadido plugin " + uploadFileName);


On Jan 18, 2008 12:13 AM, Pablo Vázquez Blázquez <[EMAIL PROTECTED]>
wrote:

> Here I send you my JSP and Action code.
>
> Yes, when I submit, the new plugin is added (I know it because of my
> logs), but I don´t know why I don´t get the result page.
>
> Thank you.
>
> PD: I have now tried without struts.multipart.parser, but it doesn´t work.
>
> ****** JSP ******
>
> <jsp:root xmlns="http://www.w3.org/1999/xhtml";
>    xmlns:jsp="http://java.sun.com/JSP/Page";
>    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt";
>    xmlns:c="http://java.sun.com/jsp/jstl/core";
>    xmlns:s="/struts-tags"
>    version="2.0">
>
>    <!-- Tabla con los plugins. Si no hay ninguno, se muestra un mensaje
> -->
>    <table class="pluginsTable" cellspacing="0px" cellpadding="3px"
> border="1px">
>        <tbody>
>            <tr>
>                <td class="tableTitle" colspan="5">
>                    <fmt:message key="PluginsTable.Title"/>
>                </td>
>            </tr>
>            <tr>
>                <td class="tableHeader">
>                    <fmt:message key="PluginsTable.Name"/>
>                </td>
>                <td class="tableHeader">
>                    <fmt:message key="PluginsTable.JarFile"/>
>                </td>
>                <td class="tableHeader">
>                    <fmt:message key="PluginsTable.PluginClass"/>
>                </td>
>                <td class="tableHeader">
>                    <fmt:message key="PluginsTable.Type"/>
>                </td>
>                <td class="tableHeader">
>                    <fmt:message key="PluginsTable.Actions"/>
>                </td>
>            </tr>
>            <c:if test="${empty plugins}">
>                <tr>
>                    <td class="tableMessage" colspan="5">
>                        <fmt:message key="PluginsTable.NoPlugins"/>
>                    </td>
>                </tr>
>            </c:if>
>            <c:forEach items="${plugins}" var="plugin" varStatus="status">
>                <!-- stuff -->
>            </c:forEach>
>        </tbody>
>    </table>
>
>
>    <!-- Form to add plugin -->
>    <s:form id="addPluginForm" name="addPluginForm" theme="ajax"
>            action="AddPlugin" enctype="multipart/form-data" method="post">
>
>        <div class="field">
>            <span class="label">
>                <fmt:message key="PluginsTable.File"/>*:
>            </span>
>            <span class="entry">
>                <s:file name="upload" size="40"
>                    accept="application/java-archive"/>
>                <span id="errorId" class="errorMessage">
>                    <s:property value="fieldErrors['upload'][0]" />
>                </span>
>                <span id="errorId" class="errorMessage">
>                    <s:property value="fieldErrors['uploadContentType'][0]"
> />
>                </span>
>            </span>
>        </div>
>
>        <!-- BOTONES -->
>        <jsp:directive.include file="FormButtons.jspf"/>
>
>    </s:form>
>
> </jsp:root>
>
>
> ****** FORMBUTTONS.JSPF****
>
> <!-- BUTTONS-->
> <div class="button">
>    <span class="buttonLeft">
>        <s:submit type="button"
>                targets="configAjaxContent" executeScripts="true"
>                showLoadingText="false" indicator="indicator"
> cssClass="submit">
>            <s:param name="value">
>                <fmt:message key="Buttons.accept"/>
>            </s:param>
>        </s:submit>
>    </span>
>    <span class="buttonRight">
>        <!-- cancelar -->
>        <s:url id="CancelUrl" action="CancelConfiguration"/>
>        <s:submit type="button" targets="configAjaxContent"
>                showLoadingText="false" cssClass="reset"
> href="${CancelUrl}">
>            <s:param name="value">
>                <fmt:message key="Buttons.cancel"/>
>            </s:param>
>        </s:submit>
>    </span>
> </div>
>
>
>
> *****ACTION *****
> public class AddPluginAction extends DefaultRequestResponseAction {
>
>    private static final long serialVersionUID = 1516786859681901796L;
>
>    /**
>     * Logger for this class
>     */
>    private static final Log log = LogFactory.getLog(AddPluginAction.class
> );
>
>    private File upload;
>    private String uploadContentType;
>    private String uploadFileName;
>
>    @Override
>    protected String doExecute() throws Exception {
>
>        clearErrorsAndMessages();
>
>        Context context =
>            SessionManager.getRemoteServerContext(getRequest());
>
>        SchedulerManager facade =
>            SessionManager.getUserFacadeDelegate(getRequest(), context);
>
>        try {
>
>            byte[] filedata = readInputStream(new FileInputStream(upload));
>
>            facade.addPlugin(uploadFileName, filedata);
>
>            log.debug("Anadido plugin " + uploadFileName);
>
>        } catch (ConnectException e) {
>            log.error(e);
>            throw new InternalErrorException(e);
>
>        } catch (DuplicateInstanceException e) {
>            log.error(e);
>            addFieldError("upload",
>                    getText("PluginsTable.File.Duplicate"));
>
>        } catch (FileNotFoundException e) {
>            log.error(e);
>            addFieldError("upload",
>                    getText("PluginsTable.File.NotFound"));
>
>        } catch (Exception e) {
>            log.error(e);
>            addFieldError("uploadContentType",
>                    getText("ErrorMessages.file.incorrectExtension"));
>        }
>
>        if (hasErrors()) {
>            return Action.INPUT;
>        }
>
>        return Action.SUCCESS;
>    }
>
>
>    /*
>     * Read an input stream in its entirety into a byte array
>     */
>    private static byte[] readInputStream(InputStream inputStream)
>        throws IOException {
>
>        ....
>
>        return content;
>    }
>
>    /**
>     * Getters/Setters
>     * @return
>     */
>
>    public File getUpload() {
>        return upload;
>    }
>
>
>    public void setUpload(File upload) {
>        this.upload = upload;
>    }
>
>
>    public String getUploadContentType() {
>        return uploadContentType;
>    }
>
>
>    public void setUploadContentType(String uploadContentType) {
>        this.uploadContentType = uploadContentType;
>    }
>
>
>    public String getUploadFileName() {
>        return uploadFileName;
>    }
>
>
>    public void setUploadFileName(String uploadFileName) {
>        this.uploadFileName = uploadFileName;
>    }
>
> }
>
>
>
>
> Dave Newton escribió:
>
> > --- 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]
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to