Jsf 无法访问目标,标识符';注册';已解析为空

Jsf 无法访问目标,标识符';注册';已解析为空,jsf,cdi,Jsf,Cdi,我正在使用jsf开发一个web应用程序,我正在尝试注册用户,但是我遇到了一些问题。服务器告诉我 500-内部服务器错误:无法访问目标,标识符“注册”解析为空 代码如下: registration.xhtml: <?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/

我正在使用jsf开发一个web应用程序,我正在尝试注册用户,但是我遇到了一些问题。服务器告诉我

500-内部服务器错误:无法访问目标,标识符“注册”解析为空

代码如下:

registration.xhtml:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:a="http://xmlns.jcp.org/jsf/passthrough">
  <h:head>
    <title>Registration</title>
    <link rel="stylesheet" href="css/registration.css"/>
    <link rel="stylesheet" href="css/application.css"/>
    <link href='http://fonts.googleapis.com/css?family=Dosis' rel='stylesheet' type='text/css'/>
    <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed' rel='stylesheet' type='text/css' />
  </h:head>

  <h:body>

    <div id='menuBar'>
      <ul>
        <li><a href='index.xhtml'><span>Home</span></a></li>
        <li><a href='registration.xhtml'><span>Register</span></a></li>
        <li><a href='#'><span>About</span></a></li>
      </ul>
    </div>

    <div class='registration'>Registration</div>

    <div class='form-div'>
      <h:form class='form'>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="name">Name:</h:outputLabel>
            <h:inputText id='name' value="#{registration.user.name}" class='feedback-input'/>
        </div>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="surname">Surname:</h:outputLabel>
            <h:inputText id='surname' value="#{registration.user.surname}" class='feedback-input'/>
        </div>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="username">Username:</h:outputLabel>
            <h:inputText id='username' value="#{registration.user.username}" class='feedback-input'/>
        </div>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="email">Email:</h:outputLabel>
          <h:inputText id='email' value="#{registration.user.email}" class='feedback-input'/>
        </div>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="password">Password:</h:outputLabel>
            <h:inputText id='password' value="#{registration.user.password}" class='feedback-input'/>
        </div>
        <div class='field'>
            <h:outputLabel a:id='fieldName' for="confpassword">Confirm Password:</h:outputLabel>
            <h:inputText id='confpassword' class='feedback-input'/>
        </div>
        <div class='submit'>
          <h:commandButton type='submit' value='REGISTER' a:id='button-reg' action="#{registration.register()}"/>
        </div>
      </h:form>
    </div>

  </h:body>
</html>
Register Validation.java

package it.polimi.business.meteocal.boundary;

import it.polimi.meteocal.business.control.RegisterValidation;
import it.polimi.meteocal.business.entity.User;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named
@RequestScoped
public class Registration {

    @EJB
    private RegisterValidation rv;

    private User user;

    public Registration() {}

    public User getUser() {
        if (user == null) {
            user = new User();
        }
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public String register() {
        rv.createUser(user);
        return "/index.xhtml?faces-redirect=true";
    }
}
package it.polimi.meteocal.business.control;

import it.polimi.meteocal.business.entity.User;
import java.security.Principal;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class RegisterValidation {

    @PersistenceContext
    EntityManager em;

    @Inject
    Principal principal;

    public void createUser(User user) {
        em.persist(user);
    }

    public void unregister() {
        em.remove(getLoggedUser());
    }

     public User getLoggedUser() {
        return em.find(User.class, principal.getName());
    }   
}

你能帮我吗?

没有明显的症状。请考虑提供可能导致异常的不同罪魁祸首的完全异常堆栈跟踪。您的bean在哪里?XML?您是否错误地访问了在您的实际代码中通过关联的XHTML页面中的EL中的某个地方使用该名称“代码>注册<代码/代码>(以大写字母开头)?从问题的当前形式来看,除此之外,没有其他问题。正如其他人所指出的,请确保您有一个beans.xml文件来在项目中启用CDI,并且您没有在任何Facelets文件中使用
{Registration}
。您能够解决这个问题吗?