2016-07-05 23 views
0

ステートレスBeanで@Scheduleを初めて使用しています。何らかの理由でグラスフィッシュによって実行されません。 私のJavaバージョンは1.8.0_91です グラスフィッシュバージョン4.1.1JEEグラスフィッシュ@スケジュールは機能しません

私はコードを次第に簡略化しました。私のコードはキーラインが下にあるものです:@Schedule(second = "0" "分=" "時間="「)

私はGlassfishの中JDBCリソースとしてJDBC/__ TimerPoolを使用していますし、正常に__TimerPoolのためにpingを実行することができます。 Glassfishの起動のための私のログに

は私がスタックトレースを見つけました:非常によく似て java.lang.NullPointerExceptionが(最初の行はGlassfishの/ Eclipseののオープン不良と同じである(https://java.net/jira/browse/GLASSFISH-21468)私がそこにある何を読むによると。?作業からscheduingを防ぐべきではありませんので、マイナーと

誰もアイデアをいただきました!間違ったと、私はこの作業を行うことができる方法

乾杯 トルステンここ

スタックトレース:

ここ
java.lang.NullPointerException 
    at org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform(ServerPlatformUtils.java:99) 
    at org.eclipse.persistence.sessions.factories.SessionManager.init(SessionManager.java:77) 
    at org.eclipse.persistence.sessions.factories.SessionManager.<clinit>(SessionManager.java:71) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.addSessionToGlobalSessionManager(EntityManagerSetupImpl.java:907) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.initSession(EntityManagerSetupImpl.java:2671) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:675) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:318) 
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:197) 
    at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createNamedQuery(EntityManagerWrapper.java:521) 
    at org.glassfish.ejb.persistent.timer.TimerBean.findTimersByOwnerAndState(TimerBean.java:209) 
    at org.glassfish.ejb.persistent.timer.TimerBean.findActiveTimersOwnedByThisServer(TimerBean.java:523) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1081) 
    at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1153) 
    at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:4786) 
    at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:656) 
    at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) 
    at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:608) 
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doCall(SystemInterceptorProxy.java:163) 
    at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:140) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:883) 
    at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:822) 
    at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:369) 
    at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:4758) 
    at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:4746) 
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:212) 
    at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88) 
    at com.sun.proxy.$Proxy221.findActiveTimersOwnedByThisServer(Unknown Source) 
    at org.glassfish.ejb.persistent.timer.PersistentEJBTimerService.restoreEJBTimers(PersistentEJBTimerService.java:369) 
    at org.glassfish.ejb.persistent.timer.PersistentEJBTimerService.resetEJBTimers(PersistentEJBTimerService.java:1400) 
    at com.sun.ejb.containers.EJBTimerService.initEJBTimerService(EJBTimerService.java:236) 
    at com.sun.ejb.containers.EJBTimerService.getEJBTimerService(EJBTimerService.java:205) 
    at com.sun.ejb.containers.EJBTimerService.getEJBTimerService(EJBTimerService.java:187) 
    at com.sun.ejb.containers.BaseContainer.<init>(BaseContainer.java:825) 
    at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:143) 
    at com.sun.ejb.containers.StatelessSessionContainer.<init>(StatelessSessionContainer.java:137) 
    at com.sun.ejb.containers.StatelessContainerFactory.createContainer(StatelessContainerFactory.java:61) 
    at org.glassfish.ejb.startup.EjbApplication.loadContainers(EjbApplication.java:221) 
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:291) 
    at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:99) 
    at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:206) 
    at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:313) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:496) 
    at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:406) 
    at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:243) 
    at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:326) 
    at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:374) 
    at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:471) 
    at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:228) 
    at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:85) 
    at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2072) 
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:114) 
    at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:88) 
    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213) 
    at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
]] 

私の豆:

import javax.ejb.Stateless; 
import javax.ejb.Schedule; 

@Stateless 
public class PrintCenter implements PrintCenterRemote { 
    public PrintCenter() { 
     // TODO Auto-generated constructor stub 
    } 

    @Schedule(second="0", minute="*", hour="*") 
    public void run(){ 
     System.out.println("Test"); 

    } 
} 

答えて

0

解決策が見つかりました。ドメインをデバッグモードで起動する必要があります。それ以外の場合、system.out.printlnはserver.logファイルには入れません:-)

0

はシングルトン注釈@のスタートアップでBeanとしてPrintCenterを使用してみてください。

+0

残念ながらうまくいきませんでした。両方とも試みました@Stateless @Startup@Singleton @Startup。どちらも効果なし。 – Tom

関連する問題