내 코드에는 quartz schedular의 기본 exmaple이 포함되어 있습니다. 일반적인 Java 응용 프로그램에서는 실행 중이지만 Im 번들로 변환하고 karaf에 배치하면 작동하지 않습니다.OSGI 번들처럼 작동하지 않는 석영 작업 일정
@Component
@Service
public class testImpl implements testI {
@Override
public void test() {
System.out.println("testImpl started");
try {
JobDetail job = JobBuilder.newJob(TestJob.class)
.withIdentity("testJob")
.build();
System.out.println("job \n");
Trigger trigger = TriggerBuilder.newTrigger()
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(5)
.repeatForever())
.build();
System.out.println("trigger \n ");
//THIS PARTICULAR LINE ONWARDS THE CODE IS NOT EXCUTING IM NOT GETTING SYSOUT AFTER THIS LINE.
SchedulerFactory schFactory = new StdSchedulerFactory();
System.out.println("scheduler \n");
Scheduler sch = schFactory.getScheduler();
sch.start();
sch.scheduleJob(job, trigger);
} catch (Exception e) {
e.printStackTrace();
}
}
Schedular는
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.quartz.impl.StdSchedulerFactory.<init>(StdSchedulerFactory.java:298)
at com.ericsson.testImpl.testImpl.test(testImpl.java:77)
at com.ericsson.testConsumer.testConsumer.bindTestI(testConsumer.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
같은 예외를 던지고 있지만 내가 아는 한 Karaf은 SLF4J를위한 붙박이 지원을하고있다. 명시 적으로 slf4j 번들을 추가 할 필요가 없습니다.
나는 그것을 시도하지 않았다. – shashantrika
좋아, mvn 의존성 사본 : tree + Manifest가 다음에 도움이 될 것입니다 :) –