[JAVA] Die Lebenszyklusmethode [methodName] darf keine aktivierte Ausnahme auslösen.

--Umgebung

Ereignis: Beim Starten von Payara wurde eine Fehlermeldung angezeigt

Dialogfehler


cannot Deploy app-name
deploy is failing=Error occurred during deployment:
 Exception while deploying the app [app-name] :
 The lifecycle method [methodName] must not throw a checked exception. Related annotation information:
 annotation [@javax.annotation.PostConstruct()] on annotated element [private void jp.co.ponsuke.controller.HogePreviewController.methodName() throws jp.co.ponsuke.core.dto.HogeCd$HogeException] of type [METHOD].
 Please see server.log for more details.

Ursache: Eine Methode mit @PostConstruct löst eine Ausnahme aus

Die Methode, auf die die PostConstruct-Annotation angewendet wird, muss alle folgenden Kriterien erfüllen: (Weggelassen) Wenn diese Methode eine ungeprüfte Ausnahme auslöst, verwenden Sie diese Klasse nur, wenn Sie mit der EJB die Ausnahme behandeln und wiederherstellen können.

HogePreviewController.java


    /**
     *Initialisierungsprozess.
     * @löst eine HogeException-Ausnahme aus.
     */
    @PostConstruct
    private void methodName() throws HogeException {
        //Verarbeitung, die eine Ausnahme auslöst...
        //Andere Verarbeitung...
    }

Aktion: Verschieben Sie den Prozess in die Methode von f: viewAction

HogePreviewController.java


    /**Initialisierungsprozess. */
    @PostConstruct
    private void methodName() {
        //Andere Verarbeitung...
    }

    /**
     *Bildschirmanzeigeverarbeitung.
     * @löst eine HogeException-Ausnahme aus.
     */
    public void viewAction() throws HogeException {
        //Verarbeitung, die eine Ausnahme auslöst...
    }

hogePreview,xhtml


<h:head>
  <f:metadata>
    <f:viewAction action="#{hogePreviewController.viewAction()}" />
  </f:metadata>
</h:head>

Recommended Posts

Die Lebenszyklusmethode [methodName] darf keine aktivierte Ausnahme auslösen.
darf nicht in der for-Anweisung zurückgegeben werden