Bean nicht instanziiert

Plattform, die ich benutze:

Fedora 20;mariadb-5.5.34-2.fc20.x86_64;Eclipse Kepler Service Release von www.eclipse.org;Apache TomEE plus 1.6.0.

Ich implementiere Beispiel

Siehe hier

und ich versuche, zu handhaben, um die LOGON-Schnittstelle zu bearbeiten. Mein Problem ist, dass die Java Bean von Login.xhtml nicht instanziiert wurde. Wie ist es möglich? Ich bin ziemlich vertraut mit Java Beans, habe nach Fehlern gesucht und das Beispiel stammt von einem erfahrenen Java-Programmierer. Ich fand dieses Problem heraus, weil ich es nicht schaffte, mich anzumelden, und der Debugger keine Variablen zeigte.Eclipse: Keine angezeigten Variablen beim Debuggen von Java EE

Ich hänge die login.xhtml und die Java Bean an. Ich lasse die GUI-Bibliotheken aus, da ich denke, dass sie nicht Teil des Problems sind.

Login.xhtml

<ui:composition template="/templates/layout.xhtml"
     xmlns="http://www.w3.org/1999/xhtml"
     xmlns:f="http://java.sun.com/jsf/core"
     xmlns:h="http://java.sun.com/jsf/html"
     xmlns:ui="http://java.sun.com/jsf/facelets"
     xmlns:p="http://primefaces.org/ui"
>
     <ui:define name="content">
         <h:form styleClass="loginPanelStyle">
                 <p:growl id="msgs" showDetail="true" sticky="false" />                        
                <p:panelGrid columns="2">
                <f:facet name="header">
                    Login Panel
                </f:facet>
                <h:outputText value="Username : "></h:outputText>
                <p:inputText id="username" value="#{loginController.username}" required="true" requiredMessage="Please Enter Username!" message="fc">
                    <f:validateLength minimum="1" />  
                </p:inputText>
                <h:outputText value="Password : "></h:outputText>
                <p:password id="password" value="#{loginController.password}" required="true" requiredMessage="Please Enter password!">
                    <f:validateLength minimum="1" />  
                </p:password>
                <f:facet name="footer">
                <p:commandButton value="Submit" update="msgs" actionListener="#{loginController.login}" type="submit" icon="ui-icon-check" style="margin:0"></p:commandButton>
                </f:facet> 
            </p:panelGrid>
        </h:form>
     </ui:define>
</ui:composition>

LoginController.java

package controller;

import util.DateUtility;
import java.io.IOException;
import java.io.Serializable;
import java.security.Principal;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * Login Controller class allows only authenticated users to log in to the web
 * application.
 *
 * @author Emre Simtay <[email protected]>
 */
@Named
@SessionScoped
public class LoginController implements Serializable {

    @Inject
    private transient Logger logger;
    private String username;
    private String password;

    /**
     * Creates a new instance of LoginController
     */
    public LoginController() {
        System.out.println("che diamine");
    }

    //  Getters and Setters
    /**
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     *
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     *
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     *
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * Listen for button clicks on the #{loginController.login} action,
     * validates the username and password entered by the user and navigates to
     * the appropriate page.
     *
     * @param actionEvent
     */
    public void login(ActionEvent actionEvent) {
        System.out.println("CONSOLE PRINT TEST");

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) context.getExternalContext().getRequest();
        try {
            String navigateString = "";
            // Checks if username and password are valid if not throws a ServletException
            request.login(username, password);
            // gets the user principle and navigates to the appropriate page
            Principal principal = request.getUserPrincipal();
            if (request.isUserInRole("Administrator")) {
                navigateString = "/admin/AdminHome.xhtml";
            } else if (request.isUserInRole("Manager")) {
                navigateString = "/manager/ManagerHome.xhtml";
            } else if (request.isUserInRole("User")) {
                navigateString = "/user/UserHome.xhtml";
            }
            try {
                logger.log(Level.INFO, "User ({0}) loging in #" + DateUtility.getCurrentDateTime(), request.getUserPrincipal().getName());
                context.getExternalContext().redirect(request.getContextPath() + navigateString);
            } catch (IOException ex) {
                logger.log(Level.SEVERE, "IOException, Login Controller" + "Username : " + principal.getName(), ex);
                context.addMessage(null, new FacesMessage("Error!", "Exception occured"));
            }
        } catch (ServletException e) {
            logger.log(Level.SEVERE, e.toString());
            context.addMessage(null, new FacesMessage("Error!", "The username or password you provided does not match our records."));
        }
    }

    /**
     * Listen for logout button clicks on the #{loginController.logout} action
     * and navigates to login screen.
     */
    public void logout() {

        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        logger.log(Level.INFO, "User ({0}) loging out #" + DateUtility.getCurrentDateTime(), request.getUserPrincipal().getName());
        if (session != null) {
            session.invalidate();
        }
        FacesContext.getCurrentInstance().getApplication().getNavigationHandler().handleNavigation(FacesContext.getCurrentInstance(), null, "/Login.xhtml?faces-redirect=true");
    }
}

TomEE-Konsole:

Siehe hier

web.xml

Siehe hier

Ordnerbaum:

$ tree
.
├── build
│   └── classes
│       ├── controller
│       │   └── LoginController.class
│       ├── entity
│       │   ├── Address.class
│       │   ├── BaseEntity.class
│       │   ├── Role.class
│       │   └── User.class
│       ├── META-INF
│       │   └── persistence.xml
│       └── util
│           └── DateUtility.class
├── src
│   ├── controller
│   │   └── LoginController.java
│   ├── entity
│   │   ├── Address.java
│   │   ├── BaseEntity.java
│   │   ├── Role.java
│   │   └── User.java
│   ├── META-INF
│   │   └── persistence.xml
│   └── util
│       └── DateUtility.java
└── WebContent
    ├── admin
    │   ├── AdminHome.xhtml
    │   └── UserList.xhtml
    ├── ErrorAccessDenied.xhtml
    ├── Login.xhtml
    ├── manager
    │   └── ManagerHome.xhtml
    ├── META-INF
    │   └── MANIFEST.MF
    ├── resources
    │   ├── css
    │   │   └── default.css
    │   └── primefaces-nz
    │       ├── images
    │       │   ├── ui-bg_flat_30_cccccc_40x100.png
    │       │   ├── ui-bg_flat_50_5c5c5c_40x100.png
    │       │   ├── ui-bg_glass_40_ffc73d_1x400.png
    │       │   ├── ui-bg_highlight-hard_20_16475f_1x100.png
    │       │   ├── ui-bg_highlight-soft_33_1258bf_1x100.png
    │       │   ├── ui-bg_highlight-soft_35_222222_1x100.png
    │       │   ├── ui-bg_highlight-soft_44_444444_1x100.png
    │       │   ├── ui-bg_highlight-soft_80_1442c8_1x100.png
    │       │   ├── ui-bg_inset-hard_30_dedede_1x100.png
    │       │   ├── ui-icons_222222_256x240.png
    │       │   ├── ui-icons_292cd1_256x240.png
    │       │   ├── ui-icons_a83300_256x240.png
    │       │   ├── ui-icons_cccccc_256x240.png
    │       │   └── ui-icons_ffffff_256x240.png
    │       └── theme.css
    ├── templates
    │   ├── layout.xhtml
    │   └── tiles
    │       └── LeftMenu.xhtml
    ├── user
    │   └── UserHome.xhtml
    └── WEB-INF
        ├── faces-config.xml
        ├── lib
        └── web.xml

24 directories, 41 files

Antworten auf die Frage(1)

Ihre Antwort auf die Frage