2017-10-08 103 views
0

我已經開始了一個線程,但是,當它試圖訪問實體管理器會拋出異常,因爲 javax.enterprise.context.ContextNotActiveException: WebBeans的作用域類型標註@RequestScoped方面不當前線程中存在ContextNotActiveException同時呼籲entityManger.createNativeQuery使用線程

我應該如何訪問EntityManger螺紋 任何解決方案?

public class SchedulerForData { 
     @Inject 
     private DefaultUserSevice userSevice; 


     public void beepForAnHour() { 
      long initialDelay; 
      final Runnable beeper = new Runnable() { 
       public void run() { 
         userSevice.getData(); 
         } 
      scheduler.scheduleAtFixedRate(beeper, 60, 30, TimeUnit.SECONDS); 

     } 
     } 
    } 



    public class DefaultUserSevice { 

    @Inject 
    EntityManager entityManger; 


    public void getData(){ 
     List resultList = entityManager.createNativeQuery("Select * from USER").getResultList(); 
    } 

    } 
+0

有沒有對DefaultUserSevice類的任何註解? –

+0

沒有說明爵士 –

回答

0

如果該服務沒有其他的配置,你應該讓服務管理bean,並添加交易功能:

@Stateless 
@TransactionManagement(TransactionManagementType.CONTAINER) 
public class DefaultUserSevice 
+0

我用上面的註釋,但它在entityManger.createNativeQuery(拋出異常),但我看不出有什麼樣的控制檯上 –

+0

異常或錯誤的因此多數民衆贊成一件好事嗎? –

+0

沒有先生,因爲它不能繼續前進 –