'im sure to do something wrong  but I can not  inject  an async method 
for  one reason or another 
neither  injection does work:

@In(create = true) ProcessingAction processingAction;//Fails

@In("#{processingAction}") ProcessingAction processingAction;/Fails 
javax.ejb.EJBException: java.lang.IllegalArgumentException: could not set field 
value: startupManager.#{processingAction}
 @In(create = true) ProcessingAction processingAction;//Fails

The create  method  is successfull as  long as the values are  not injected 



  | 
  | @Startup
  | @Stateful
  | @Scope(ScopeType.APPLICATION)  //application required for  startup
  | @Name("startupManager")        //Name 
  | public class StartupManager implements StartupManagerINTF{ // create 
Interface
  | 
  |     @Logger private Log log;
  |     @In("#{processingAction}") ProcessingAction processingAction;/Fails 
javax.ejb.EJBException: java.lang.IllegalArgumentException: could not set field 
value: startupManager.#{processingAction}
  | //    @In(create = true) ProcessingAction processingAction;//Fails
  | 
  |     private QuartzTriggerHandle handle = null;
  | 
  |     @Create
  |     public void create() {
  |             log.info("create(): called");
  |             // init
  |             int delay = 20; // in seconds
  |             long interval = 1000 * delay;
  |             Calendar cal = Calendar.getInstance();
  |             cal.setTime(new Date());
  |             cal.add(Calendar.SECOND, delay);
  |             // create Processing
  |             long processingId=-1;
  |             if (processingAction!=null)
  |             {       
  |              processingId = processingAction.createProcessing("serverJob");
  |             // schedule job and save handler
  |              this.handle = processingAction.doServerJob(processingId, 
cal.getTime(), interval);
  |             }
  |             log.info("create(): id: #0", processingId);
  |     }
  |     
  |     public QuartzTriggerHandle getHandle() {return this.handle ;}
  | 
  |     @Remove public void destroy() {
  |     }
  | }
  | 

injected code :

I tried  starting 
using different scopes  but all remain unsuccessfull

  | @Stateful
  | @Name("processingAction")
  | @Scope(ScopeType.APPLICATION)
  | public class ProcessingAction implements ProcessingActionINTF { // create 
Interface
  | 
  |     @Logger private Log log;
  | 
  |     @In     private EntityManager entityManager;
  |     public ProcessingAction()
  |     {String  Procesaction="Processing action";}
  |     public ProcessingAction ProcessingAction()
  |     {return this;}
  |     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  |     public long createProcessing(String string) {
  |             // create Processing
  |             ShedJobStatusDB processing = new ShedJobStatusDB();
  |             String JobId=""+(new Date()).toString()+":"+string;
  | 
  |             processing.setHandle(JobId);
  |             processing.setDescription("Startup stared");
  |             processing.setEnd(new Date());
  |             processing.setGrp("Startup");
  |             processing.setId(1);
  |             processing.setUsr("Nobody");
  |             processing.setLastReturnValue(string);
  |             processing.setRun(new Date());
  |             processing.setStats("Status");
  |             processing.setRunning(new Date());
  |             processing.setName("processingAction");
  |             // managed context
  |             if (entityManager!=null)
  |             {
  |               entityManager.persist(processing);
  |               entityManager.flush();
  |         }
  |             processing.setName("serverJob");
  |             // return id
  |             return processing.getId();
  |     }
  | 
  |     @Asynchronous
  |     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  |     public QuartzTriggerHandle doServerJob(long processingId, @Expiration 
Date date, @IntervalDuration Long interval)
  |     {
  |             log.info("doServerJob(): called");
  |             // get bean
  |             ShedJobStatusDB processing = 
entityManager.find(ShedJobStatusDB.class, processingId);
  |             // if exists remove
  |             if (processing != null) {
  |                     entityManager.remove(processing);
  |                     log.info("doServerJob(): removed: id: #0", 
processingId);
  |             } else {
  |                     // else stop server job
  |                     try {
  | //  nolink          startupManager.getHandle().cancel();
  |                     } catch (Exception e) {
  |                             log.error("", e);
  |                     }
  |                     log.info("doServerJob(): stopped: id: #0", 
processingId);
  |             }
  |             // return new handle
  |             return new QuartzTriggerHandle("serverJob");
  |     }
  |     
  |     @Remove
  |     public void destroy() {
  |     }
  | }
  |     




  | import org.jboss.annotation.*;
  | import 
org.jboss.seam.annotations.datamodel.*;//DataModel;DataModelSelection;
  | import org.jboss.seam.*;
  | import 
org.jboss.seam.annotations.*;//Factory,Name,In,Out,Scope,Logger,Destroy
  | import org.jboss.seam.contexts.*;
  | import org.jboss.seam.annotations.Logger;
  | import org.jboss.seam.log.Log;
  | import org.jboss.seam.faces.*;
  | 
  | import javax.persistence.*; //EntityManager;PersistenceContext;
  | import javax.ejb.*;//stateless;stateful,remove
  | 
  | import static javax.persistence.PersistenceContextType.*;
  | import static org.jboss.seam.ScopeType.*;//session
  | 
  | import org.hibernate.validator.*;
  | 
  | 
  | import org.jboss.seam.annotations.Transactional;
  | import org.jboss.seam.annotations.async.*;
  | import org.jboss.seam.annotations.async.Asynchronous;
  | import org.jboss.seam.async.*;
  | import org.quartz.*;
  | import org.jboss.seam.ejb.SeamInterceptor;
  | 
  | 
  | import lib.cyclus.String.*;
  | import com.cycluspro.*;
  | import com.cycluspro.ejb.*;
  | import com.cycluspro.ejb.beurs.*;
  | import com.cycluspro.ejb.common.jobs.*;
  | import com.cycluspro.ejb.common.*;//db 
  | import lib.cycluspro.webaccess.*;
  | import lib.cycluspro.Hibernate.HibernateEntity;
  | import lib.cycluspro.string.*;
  | import lib.cycluspro.string.DateInOut;
  | 
  | import com.cycluspro.beurs.*;
  | import com.cycluspro.beurs.user.AandelenINTF;
  | 
  | import java.util.*; //List;Date;
  | import java.io.*;//Serializable;
  | import java.util.Properties;
  | 
  | 
  | @Local
  | public interface ProcessingActionINTF 
  | {   public ProcessingAction ProcessingAction();
  |     public long createProcessing(String string);
  | 
  |     @Asynchronous
  |     @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
  |     public QuartzTriggerHandle doServerJob(long processingId, @Expiration 
Date date, @IntervalDuration 
  | Long interval) ;
  |     
  |     @Remove public void destroy();
  | }
  |     



Component async  is set  as well...


please can anyone help

Using seam 2.0.0 CR1
Using  jbos 4.2.1GA

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4097862#4097862

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4097862
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to