El portlet no está disponible temporalmente

Estoy siguiendo las instrucciones del libro Liferay in Action para escribir el modo de edición para un portlet. Implementé con éxito el portlet. Este portlet contiene un cuadro de texto y un botón en modo de edición. Si escribo un nombre en el cuadro de texto y presiono el botón, este nombre se mostrará en el modo de vista del portlet. Pero cuando voy al modo de edición y escribo un nombre en el cuadro de texto y presiono el botón Agregar nombre, aparece el mensaje "Portlet no está disponible temporalmente".

Actualizar:

Revisé el archivo de registro. Dice "javax.portlet.PortletException: método processAction no implementado". pero lo he implementado.

  @Override
    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
        String addName = actionRequest.getParameter("addName");
        if (addName != null) {
            PortletPreferences prefs = actionRequest.getPreferences();
            prefs.setValue("name", actionRequest.getParameter("username"));
            prefs.store();
            actionResponse.setPortletMode(PortletMode.VIEW);
        }
    }

preguntado el 10 de marzo de 12 a las 16:03

¿Puedes mostrar la excepción que tienes? -

No veo ninguna excepción. Después de implementar el portlet, abro liferay y agrego el portlet a mi portal. Luego voy al modo de edición del portlet y escribo un nombre en el cuadro de edición y presiono el botón Agregar nombre. cuando está volviendo al modo de visualización, muestra el mensaje. -

en el archivo de registro de liferay debería ver una excepción. ¿También puede mostrar su controlador de renderizado (vista)? O si estás siguiendo el ejemplo palabra por palabra, ¿puedes decir en qué página está? -

Portlet no está disponible temporalmente es la forma amigable de Liferay de decirle que se ha lanzado una excepción en segundo plano. Entonces, como dice Martin, necesitamos ver la excepción en los registros:

Revisé el archivo de registro. Dice "javax.portlet.PortletException: método processAction no implementado". pero lo he implementado. Esta es la implementación: -

1 Respuestas

Puede encontrar el error en los registros (suponiendo que también use Tomcat)

  • Cuando el servidor está en: liferayfolder/tomcatfolder/logs/catalina.out
  • Cuando el servidor está apagado: liferayfolder/logs/liferay-2012-03-11.log (la fecha puede cambiar)

Si está en Linux o Mac OS, puede seguir el archivo de registro para monitorearlo en vivo.

Por ejemplo: tail -f path\to\tomcat\logs\catalina.out

Hasta que se proporcione más información, le sugiero que mire los ejemplos del libro y comparar los códigos. (Recursos > descargar > ejemplos de código)

Respondido el 19 de junio de 18 a las 12:06

El problema esta resuelto. Pero desafortunadamente no entendí cómo se resolvió. Acabo de descargar el código fuente del sitio de dotación y reemplacé el método processAction. Lo comparé con mi propio método. Eran los mismos. - káradous

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.