Я получаю эту ошибку, следуя этой инструкции для mvc 1.0 .
[ОШИБКА] Причина: org.jboss.weld.exceptions.DeploymentException: WELD-001408: неудовлетворенные зависимости для моделей типов с квалификаторами @Default в точке внедрения [BackedAnnotatedField] @Inject ch.xxx.controller.UserControlmo.de ch.xxx.controller.UserController.models (UserController.java:0)
Я пытался ...
- размещение файла beans.xml в нескольких местах (resources / META-INF / beans.xml | webapp / WEB-INF / beans.xml)
- изменение режима bean-discovery-mode на "all"
- аннотировал мой User.class с @Named и / или @SessionScoped (не в учебнике)
Это мой User.class
@Entity
@Table(name = "users")
@NamedQuery(name = "User.findAll", query = "SELECT u FROM User u")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String email;
private String password;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
Вот мой UserForm.class
import javax.ws.rs.FormParam;
public class UserForm {
@FormParam("id")
private String id;
@FormParam("email")
private String email;
@FormParam("password")
private String password;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
и, наконец, мой UserController.class, где на самом деле происходит ошибка:
@Controller
@Stateless
@Path("/user")
public class UserController {
@PersistenceContext
EntityManager entityManager;
@Inject
Models models;
@GET
@View("user/all-users.html")
public void getAllREST(){
List<User> allUsers = entityManager.createNamedQuery("User.findAll", User.class).getResultList();
models.put("users", allUsers);
}
@GET
@Path("/create")
public String getCreateRESTForm(){
return "user/create-user.html";
}
@POST
@Path("/create")
public String create(@BeanParam UserForm userForm){
User user = new User();
user.setEmail(userForm.getEmail());
user.setPassword(user.getPassword());
entityManager.persist(user);
return "redirect:/user";
}
}
Я действительно потерян здесь, так как понятия не имею, что еще нужно изменить и в чем проблема для такой простой формы. И не возражайте против простого текстового пароля, он только для тестирования.