0
나는 간단한 어플리케이션을 가지고 있습니다. @startup 및 @singleton 주석이있는 EJB 하나. 그것은 프로그램 적으로 타이머를 만들고 @timeout 메서드를 가지고있다. 이 코드는 대부분 Oracle 웹 사이트의 java ee 6 자습서에 있습니다. 여기글래스 피쉬는 불법 스테이트먼트를 제공합니다 - java ee 타이머 어플리케이션을 배포하려고 시도합니다
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
@Singleton
@Startup
public class TimerSessionBean {
@Resource
TimerService timerService;
long duration = 6000;
private Logger logger = Logger.getLogger(
"simpletimer.service.TimerSessionBean");
@PostConstruct
public void setTimer() {
logger.info("Setting a programmatic timeout for "
+ duration + " milliseconds from now.");
Timer timer = timerService.createTimer(duration,
"Created new programmatic timer");
}
@Timeout
public void programmaticTimeout(Timer timer) {
logger.info("Programmatic timeout occurred.");
}
}
serverlog 파일의 오류는 다음과 같습니다 : 여기에 코드입니다
SEVERE: Exception while invoking class com.sun.enterprise.web.WebApplication start method
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.jboss.weld.servlet.WeldListener
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:138)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)