[英]org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for Type
[英]JSF - org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type
注意:我已經嘗試過類似問題的可用解決方案。
我正在使用JSF,Java 8,Tomcat 9,Maven,H2 db開發一個簡單的CRUD應用程序。 當我嘗試啟動服務器時,發生以下異常
由以下原因引起:org.jboss.weld.exceptions.DeploymentException:WELD-001408:帶有限定符@Default的類型ContactsDAO的依賴關系未滿足,默認值在注入點[BackedAnnotatedParameter] [BackedAnnotatedConstructor]的參數1 @Inject public com.contacts.ContactsController(ContactsDAO)
當我從ContactsController的構造函數中刪除@Inject批注時,異常消失了,但是contactsDao為空,因此我無法獲取聯系人列表。
ContactsController.java
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named("contactsController")
@SessionScoped
public class ContactsController implements Serializable {
public ContactsController() {
}
@Inject
public ContactsController(ContactsDAO contactDAO) {
this.contactDAO = contactDAO;
}
@PostConstruct
public void init() {
logger.info("retrieving list of contacts");
try {
if(contactDAO != null) {
System.out.println("ifff");
contacts = contactDAO.getAllContacts();
}
else {
System.out.println("Contacts DAO null");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
ContactsDAO.java
public interface ContactsDAO {
List<Contact> getAllContacts() throws SQLException;
}
ContactsDAOImpl.java
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
@Named
@ApplicationScoped
public class ContactsDAOImpl implements ContactsDAO, Serializable{
@Override
public List<Contact> getAllContacts() throws SQLException {
List<Contact> contacts = new ArrayList<>();
try {
String sql = "SELECT * FROM contacts";
connect();
PreparedStatement pstmt = jdbcConnection.prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Contact newContact = new Contact();
newContact.setId(rs.getInt("id"));
contacts.add(newContact);
}
}
catch (SQLException e) {
e.printStackTrace();
}
return contacts;
}
}
WEB-INF / beans.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
bean-discovery-mode="annotated">
</beans>
Tomcat不支持CDI。 看看@BalusC的這篇文章
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.