Я недавно разработал приложение с Glassfish, и разработка идет очень гладко, теперь с JBoss я пытаюсь сделать то же самое, но замедляется различными проблемами, такими как as: @EJB работает, но @Inject не работает. У меня пока нет классного класса, у меня просто есть класс Singleton Startup и простой класс Stateless, который я ввожу, и к моему удивлению, инъекция не работает. Вот мой класс:JBoss7.1.3: @EJB работает, а @Inject не работает
package com.czetsuya.dropship;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Singleton
@Startup
public class StartupListener {
private Logger log = LoggerFactory.getLogger(StartupListener.class);
@EJB
private TestService testService;
public StartupListener() {
}
@PostConstruct
private void init() {
testService.test();
log.debug("startup");
}
}
Класс обслуживания:
package com.czetsuya.dropship;
import javax.ejb.LocalBean;
import javax.ejb.Stateless;
@Stateless
@LocalBean
public class TestService {
public TestService() {
}
public void test() {
System.out.println("run");
}
}
Другое дело, если я впрыснуть мой регистратор со следующим производителя также не работает и бросает:
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject private com.czetsuya.dropship.StartupListener.log]
Производитель регистратора:
@Produces
Logger createLogger(InjectionPoint injectionPoint) {
return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
}
Обратите внимание, что у меня есть beans.xml в моем проекте ejb и war.
Мой beans.xml файл:
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/beans_1_0.xsd"></beans>