Я не могу ввести регистратор в CDI-компонент. Я пробовал решения от ответов на другие подобные вопросы, но никто не помог. Я буду очень признателен, если вы поможете мне найти, что здесь происходит.WELD-001408 Неудовлетворенные зависимости - не удается найти основную причину
Я использую Glassfish 4.0.
Сообщение об ошибке от Eclipse, при попытке развернуть приложение:
deploy is failing=Error occurred during deployment: Exception while loading the app : CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[BackedAnnotatedField] @Inject protected learning.javaee.guestbook.UnregisteredUserPost.log]. Please see server.log for more details.
CDI боб точка, содержащая инъекции: производитель
package learning.javaee.guestbook;
import java.time.OffsetDateTime;
import java.util.logging.Logger;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@RequestScoped
public class UnregisteredUserPost extends AbstractPost {
private String name;
private OffsetDateTime dateTime;
@Inject
protected Logger log;
public UnregisteredUserPost() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public OffsetDateTime getDateTime() {
return dateTime;
}
public void setDateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime;
}
public void save() {
log.info("TEST");
}
}
Logger:
package learning.javaee.guestbook;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
import org.jboss.logging.Logger;
public class LoggerProducer {
@Produces
public Logger produceLogger(InjectionPoint ip) {
return Logger.getLogger(ip.getMember().getDeclaringClass().getName());
}
}
guestbook.xhtml - вызывает метод CDI бина save()
, который использует экземпляр Logger
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html">
<h:head>
<title>#{msg.page_title}</title>
<link rel="stylesheet" type="text/css" href="css.css"/>
</h:head>
<h:body>
<h:form>
<h:outputText value="#{msg.your_name} "/>
<h:inputText value="#{unregisteredUserPost.name}"/>
<br/><br/>
<h:outputText value="#{msg.your_msg}"/>
<br/>
<h:inputTextarea
rows="5" cols="100" value="#{unregisteredUserPost.content}"/>
<br/><br/>
<h:commandButton
value="#{msg.submit}" action="#{unregisteredUserPost.save()}"/>
</h:form>
</h:body>
</html>
WebContent \ 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"
version="1.1" bean-discovery-mode="all">
</beans>
Вы правы! Это решает проблему! Спасибо, что заметили эту ошибку. – infranoise