I have created a dynamic plugin and following is my activator class, I am not sure what is wrong here but none of the system jobs are being created. It errors out at first "scheduleQuartzJob()".
Details:
Dotcms version :3.5.1
Java : 1.8.0_60 JDK
Can you please help me figure out what is wrong in here?
Stack trace :
2016-09-12 12:04:22,327 ERROR No log4j2 configuration file found. Using default configuration: logging only errors to the console.
12:04:22.378 [fileinstall-/opt/dotcms/wwwroot/dotcms-3.5.1/dotserver/tomcat-8.0.18/webapps/ROOT/WEB-INF/felix/load] ERROR com.ehc.plugins.dynamic.ebsco.Activator - null
java.lang.NullPointerException
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl.diagnoseClassLoadError(BundleWiringImpl.java:2625) ~[dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl.access$700(BundleWiringImpl.java:75) ~[dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1967) ~[dot.felix-4.2.1_3.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0-zing_16.07.0.0]
at com.dotmarketing.osgi.CombinedLoader.loadClass(CombinedLoader.java:85) ~[dotcms_3.5.1_3.5-8-g8506266.jar:?]
at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:384) ~[dotcms_3.5.1_3.5-8-g8506266.jar:?]
at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:347) ~[dotcms_3.5.1_3.5-8-g8506266.jar:?]
at com.dotmarketing.osgi.GenericBundleActivator.scheduleQuartzJob(GenericBundleActivator.java:528) ~[dotcms_3.5.1_3.5-8-g8506266.jar:?]
at com.ehc.plugins.dynamic.ebsco.Activator.registerEbscoWebServiceJob(Activator.java:116) [EBSCOPlugin.jar:?]
at com.ehc.plugins.dynamic.ebsco.Activator.registerEbscoWSrvServlet(Activator.java:90) [EBSCOPlugin.jar:?]
at com.ehc.plugins.dynamic.ebsco.Activator.start(Activator.java:45) [EBSCOPlugin.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645) [dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2146) [dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.Felix.startBundle(Felix.java:2064) [dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955) [dot.felix-4.2.1_3.jar:?]
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1175) [dot.org.apache.felix.fileinstall-3.1.10_3.jar:?]
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1153) [dot.org.apache.felix.fileinstall-3.1.10_3.jar:?]
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.processAllBundles(DirectoryWatcher.java:1146) [dot.org.apache.felix.fileinstall-3.1.10_3.jar:?]
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:456) [dot.org.apache.felix.fileinstall-3.1.10_3.jar:?]
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:263) [dot.org.apache.felix.fileinstall-3.1.10_3.jar:?]
Error is :null
java.lang.NullPointerException
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl.diagnoseClassLoadError(BundleWiringImpl.java:2625)
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl.access$700(BundleWiringImpl.java:75)
at com.dotcms.repackage.org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1967)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.dotmarketing.osgi.CombinedLoader.loadClass(CombinedLoader.java:85)
at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:384)
at com.dotmarketing.osgi.GenericBundleActivator.injectContext(GenericBundleActivator.java:347)
at com.dotmarketing.osgi.GenericBundleActivator.scheduleQuartzJob(GenericBundleActivator.java:528)
at com.ehc.plugins.dynamic.ebsco.Activator.registerEbscoWebServiceJob(Activator.java:116)
at com.ehc.plugins.dynamic.ebsco.Activator.registerEbscoWSrvServlet(Activator.java:90)
at com.ehc.plugins.dynamic.ebsco.Activator.start(Activator.java:45)
at com.dotcms.repackage.org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
at com.dotcms.repackage.org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
at com.dotcms.repackage.org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
at com.dotcms.repackage.org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1175)
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:1153)
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.processAllBundles(DirectoryWatcher.java:1146)
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:456)
at com.dotcms.repackage.org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:263)
public class Activator extends GenericBundleActivator {
private DispatcherServlet dispatcherServlet;
private ExtHttpService httpService;
String JOB_GROUP = "Ebsco Jobs";
String HEALTHDAY_NEWS_JOB_CLASS = "com.ehc.plugins.dynamic.ebsco.EBSCOWebSrvcImportHealthDayNewsDataJob";
String HEALTHDAY_NEWS_JOB_NAME = "EBSCO Import Health Day New Data Job";
String HEALTHDAY_NEWS_CRON_EXPRESSION = "0 30 14 * * ?";
String DRUG_DATABASE_JOB_CLASS = "com.ehc.plugins.dynamic.ebsco.EBSCOWebSrvcImportDrugDatabaseDataJob";
String DRUG_DATABASE_JOB_NAME = "EBSCO Import Drug Database Data Job";
String DRUG_DATABASE_CRON_EXPRESSION = "0 30 14 * * ?";
String HEALTH_LIBRARY_JOB_CLASS = "com.ehc.plugins.dynamic.ebsco.EBSCOWebSrvcImportHealthLibraryDataJob";
String HEALTH_LIBRARY_JOB_NAME = "EBSCO Import Health Library Data Job";
String HEALTH_LIBRARY_CRON_EXPRESSION = "0 30 14 * * ?";
//private LoggerContext pluginLoggerContext;
public void start ( BundleContext context ) throws Exception
{
registerEbscoWSrvServlet( context);
}
private void registerEbscoWSrvServlet(BundleContext context) throws Exception
{
try{
/*//Initializing log4j...
LoggerContext dotcmsLoggerContext = Log4jUtil.getLoggerContext();
//Initialing the log4j context of this plugin based on the dotCMS logger context
pluginLoggerContext = (LoggerContext) LogManager.getContext(Activator.class.getClassLoader(),
false,
dotcmsLoggerContext,
dotcmsLoggerContext.getConfigLocation());*/
// Initializing services...
initializeServices(context);
String[] xmls = new String[]{"conf/portlet.xml", "conf/liferay-portlet.xml"};
//Register our portlets
registerPortlets( context, xmls );
@SuppressWarnings("rawtypes")
ServiceReference sRef = context.getServiceReference(ExtHttpService.class.getName());
if (sRef != null) {
// Publish bundle services
publishBundleServices(context);
httpService = (ExtHttpService) context.getService(sRef);
try {
dispatcherServlet = new DispatcherServlet();
dispatcherServlet
.setContextConfigLocation("ebscoImport-servlet.xml");
httpService.registerServlet("/importEbscoData",
dispatcherServlet, null, null);
} catch (Exception e) {
e.printStackTrace();
}
CMSFilter.addExclude("/importEbscoData");
}
// initialize all 3 cron jobs.
registerEbscoWebServiceJob();
}catch(Exception e){
//Logger.info(this, "Exception occured : "+e.getMessage());
System.out.println("Exception occured : "+e.getMessage());
System.out.println("Suprressed exceptions : "+e.getSuppressed());
e.printStackTrace();
}
}
private void registerEbscoWebServiceJob()
{
try
{
//Creating our custom Quartz Job
CronScheduledTask healthDayNewsCronScheduledTask =
new CronScheduledTask( HEALTHDAY_NEWS_JOB_NAME, JOB_GROUP, HEALTHDAY_NEWS_JOB_NAME, HEALTHDAY_NEWS_JOB_CLASS,
new Date(), null, CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW,
new HashMap<String, Object>(), HEALTHDAY_NEWS_CRON_EXPRESSION );
//Schedule our custom job for healthDay News
//QuartzUtils.scheduleTask(healthDayNewsCronScheduledTask);
scheduleQuartzJob( healthDayNewsCronScheduledTask );
//Creating our custom Quartz Job
CronScheduledTask healthLibraryNewsCronScheduledTask =
new CronScheduledTask( HEALTH_LIBRARY_JOB_NAME, JOB_GROUP, HEALTH_LIBRARY_JOB_NAME, HEALTH_LIBRARY_JOB_CLASS,
new Date(), null, CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW,
new HashMap<String, Object>(),HEALTH_LIBRARY_CRON_EXPRESSION );
//Schedule our custom job for Drug database News
//QuartzUtils.scheduleTask(healthLibraryNewsCronScheduledTask);
scheduleQuartzJob( healthLibraryNewsCronScheduledTask );
//Creating our custom Quartz Job
CronScheduledTask drugDatabaseCronScheduledTask =
new CronScheduledTask( DRUG_DATABASE_JOB_NAME, JOB_GROUP, DRUG_DATABASE_JOB_NAME, DRUG_DATABASE_JOB_CLASS,
new Date(), null, CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW,
new HashMap<String, Object>(), DRUG_DATABASE_CRON_EXPRESSION );
//Schedule our custom job for health Library News
//QuartzUtils.scheduleTask(drugDatabaseCronScheduledTask);
scheduleQuartzJob( drugDatabaseCronScheduledTask );
}catch(Exception e)
{
Logger.error(this,e.getMessage(),e);
System.out.println("Error is :" +e.getMessage());
e.printStackTrace();
}
}