2011-02-02 3 views
0

Jboss5.1.x, EJB3.0을 사용 중입니다.quartz가 EJB stateless 구성 요소를 시작하는 방법은 무엇입니까?

저는 이틀 동안이 주제를 다루고 있습니다. 나는 그것이 쉽다라고 들었다. 그러나 그것은 보인다, 또는, 문서의 부족이거나, 약간의 물건을 얻는 것이 어려웠다.

제 시나리오는 jboss에 응용 프로그램 서버 프로젝트를 처음 배포 할 때 트리거되는 예약 된 작업을 가지고 있습니다. 그런 다음 모든 X 시간을 다시 실행해야합니다.

  1. 가 어떻게를 automaticly 서버 배포 후 트리거 않습니다

    드디어 보스-service.xml을 위해

    하지만을 석영의 MBean를 추가 관리해야? 내가 서블릿을 통해해야한다는 것을 알았습니까? 그렇다면 프로젝트 배포시 서블릿을 어떻게 트리거할까요? 내가 EJB bean에서 똑바로 서블릿없이 그것을 트리거 할 수 없다.

  2. 트리거 후 트리거 메소드에서 EJB 상태 비 저장 bean을 호출하려고합니다. (응용 프로그램 배포하는 것은 아니고 -> 석영 ->서블릿

    (-> 석영 - -> EJB 빈> .. 응용 프로그램 배포) :

는 내가 시나리오를 이런 식으로 뭔가되고 싶은 것 -> EJB bean)

어떻게하면됩니까?

 InitialContext ctx = new InitialContext(); 
     StdScheduler scheduler = (StdScheduler) ctx.lookup("Quartz"); 

     JobDetail jd = new JobDetail("myjob", scheduler.DEFAULT_GROUP, NewJob.class); 
     CronTrigger ct = new CronTrigger("cronTrigger", "group2", "0 0/5 * * * ?"); 
     scheduler.scheduleJob(jd, ct); 

가이 코드에 의해 단지 POJO의 ("NewJob.class")를 트리거 것 같다 : 이것은 내가 찾은 코드입니다. EJB stateless bean을 트리거하고 싶습니다.

누구든지 답변을 해주십니까? 제발 .. 최악의 경우 저는 석영에서 다른 것으로 바꿀 것입니다.

감사합니다. 레이.

답변

1

나는 당신의 질문을 완전히 이해하지 못한다. - 또는 오히려 나는 여기에 하나 이상의 질문이 있다고 생각하지만, "trigger"라는 단어를 사용하고있는 것처럼, 나는 그 언어를 따르지 않는다. (석영 용어)를 여러 가지 방식으로 사용합니다.

필자는 분명히 이해하고 대답 할 수있는 질문 중 하나가 있습니다. 이것이 quartz가 EJB에서 메소드를 호출하게하는 방법입니다. 해당 EJB를 찾아서 호출하는 방법을 알고있는 execute() 메소드에 코드가 포함 된 Job 클래스를 작성하기 만하면됩니다. 그런 다음 해당 작업의 스케줄러와 인스턴스가 실행될 때마다 EJB가 호출됩니다. Quartz는 실제로 그렇게하는 EJBInvokerJob과 함께 제공되므로 수정없이 사용할 수 있거나 소스 코드를 시작점으로 사용할 수 있습니다. (Job quartz는 EJB v.2 빈을 호출하지만 EJB3 빈을 호출 할 수있는 클래스가 있습니다. 여기에서 다운로드 할 수 있습니다 : http://jira.opensymphony.com/browse/QUARTZ-732)

다시 말해야 할 mbean과 서블릿에 대한 다른 질문 , 왜 당신이 두 메커니즘을 모두 사용하는지 혼란 스럽습니다.

+0

안녕하십니까, 귀하의 답변을 확인해 주셔서 감사합니다. 링크를 확인 하시겠습니까? 그렇지만 어떻게 작업 시간을 설정 하시겠습니까? 트리거 시간을 설정하기 위해 crontab을 어디에서 설정해야합니까? – rayman

+0

쿼츠 및/또는 쿼츠 웹 사이트의 튜토리얼과 함께 제공되는 예제를 살펴보십시오. 정말 어렵지 않습니다. http://www.quartz-scheduler.org/docs – jhouse

+0

당신은 나에게 작동하지 않는 URL을주었습니다. – rayman

관련 문제