Hi everybody!
I added a service to my WCB that enables the user to set some initial values using /web/setup/.
Everything seemed to work nicely, but when i tried to deploy the WCB, i ran into the following error:
WARNING: Found deprecated start() method but could not invoke it
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at nl.gx.webmanager.wcb.foundation.ComponentBase.invokeDeprecatedMethod(ComponentBase.java:229)
at nl.gx.webmanager.wcb.foundation.ComponentBase.onStart(ComponentBase.java:118)
at nl.gx.webmanager.wcb.foundation.ComponentBase.internalDoStart(ComponentBase.java:128)
at sun.reflect.GeneratedMethodAccessor302.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.felix.dependencymanager.ServiceImpl.invoke(ServiceImpl.java:484)
at org.apache.felix.dependencymanager.ServiceImpl.activateService(ServiceImpl.java:441)
at org.apache.felix.dependencymanager.ServiceImpl.access$000(ServiceImpl.java:44)
at org.apache.felix.dependencymanager.ServiceImpl$1.run(ServiceImpl.java:113)
at org.apache.felix.dependencymanager.SerialExecutor$1.run(SerialExecutor.java:47)
at org.apache.felix.dependencymanager.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dependencymanager.SerialExecutor.access$000(SerialExecutor.java:33)
at org.apache.felix.dependencymanager.SerialExecutor$1.run(SerialExecutor.java:50)
at org.apache.felix.dependencymanager.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dependencymanager.SerialExecutor.execute(SerialExecutor.java:68)
at org.apache.felix.dependencymanager.ServiceImpl.calculateStateChanges(ServiceImpl.java:147)
at org.apache.felix.dependencymanager.ServiceImpl.start(ServiceImpl.java:257)
at org.apache.felix.dependencymanager.DependencyManager.add(DependencyManager.java:56)
at nl.gx.webmanager.wcb.foundation.ComponentBundleImpl.componentTypeAdded(ComponentBundleImpl.java:219)
at sun.reflect.GeneratedMethodAccessor279.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.felix.dependencymanager.ServiceDependency.invokeMethod(ServiceDependency.java:478)
at org.apache.felix.dependencymanager.ServiceDependency.invokeCallbackMethod(ServiceDependency.java:456)
at org.apache.felix.dependencymanager.ServiceDependency.invokeAdded(ServiceDependency.java:358)
at org.apache.felix.dependencymanager.ServiceDependency.addedService(ServiceDependency.java:346)
at org.apache.felix.dependencymanager.ServiceTracker$Tracked.trackAdding(ServiceTracker.java:1052)
at org.apache.felix.dependencymanager.ServiceTracker$Tracked.trackInitialServices(ServiceTracker.java:882)
at org.apache.felix.dependencymanager.ServiceTracker.open(ServiceTracker.java:287)
at org.apache.felix.dependencymanager.ServiceTracker.open(ServiceTracker.java:226)
at org.apache.felix.dependencymanager.ServiceDependency.start(ServiceDependency.java:309)
at org.apache.felix.dependencymanager.ServiceImpl.startTrackingOptional(ServiceImpl.java:509)
at org.apache.felix.dependencymanager.ServiceImpl.activateService(ServiceImpl.java:443)
at org.apache.felix.dependencymanager.ServiceImpl.access$000(ServiceImpl.java:44)
at org.apache.felix.dependencymanager.ServiceImpl$1.run(ServiceImpl.java:113)
at org.apache.felix.dependencymanager.SerialExecutor$1.run(SerialExecutor.java:47)
at org.apache.felix.dependencymanager.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dependencymanager.SerialExecutor.access$000(SerialExecutor.java:33)
at org.apache.felix.dependencymanager.SerialExecutor$1.run(SerialExecutor.java:50)
at org.apache.felix.dependencymanager.SerialExecutor.scheduleNext(SerialExecutor.java:84)
at org.apache.felix.dependencymanager.SerialExecutor.execute(SerialExecutor.java:68)
at org.apache.felix.dependencymanager.ServiceImpl.calculateStateChanges(ServiceImpl.java:147)
at org.apache.felix.dependencymanager.ServiceImpl.start(ServiceImpl.java:257)
at org.apache.felix.dependencymanager.DependencyManager.add(DependencyManager.java:56)
at nl.gx.webmanager.wcb.foundation.ComponentBundleActivatorBase.init(ComponentBundleActivatorBase.java:77)
at org.apache.felix.dependencymanager.DependencyActivatorBase.start(DependencyActivatorBase.java:76)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:589)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1458)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:774)
at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:755)
at nl.gx.webmanager.services.deployer.impl.DeployerService.startBundle(DeployerService.java:244)
at nl.gx.webmanager.services.deployer.impl.DeployerService.installWCB(DeployerService.java:198)
at nl.gx.webmanager.services.deployer.impl.DeployerService.installOrUpdateWcb(DeployerService.java:161)
at nl.gx.webmanager.services.deployer.impl.DeployerService.installOrUpdateFile(DeployerService.java:128)
at nl.gx.webmanager.services.wcbdirectoryscanner.impl.WCBDirectoryScannerImpl.scanFile(WCBDirectoryScannerImpl.java:314)
at nl.gx.webmanager.services.wcbdirectoryscanner.impl.WCBDirectoryScannerImpl.scanDirectory(WCBDirectoryScannerImpl.java:298)
at nl.gx.webmanager.services.wcbdirectoryscanner.impl.WCBDirectoryScannerImpl$WCBDirectoryScannerThread.run(WCBDirectoryScannerImpl.java:213)
Caused by: java.lang.NullPointerException
at com.gxwebmanager.solutions.malmbergswfbook.malmbergswfbookelement.services.config.implementation.ConfigurationServiceImpl.start(ConfigurationServiceI
mpl.java:31)
... 62 more
I found the start() method in my ConfigurationServiceImpl file:
/**
* Callback method for the dependency manager, called when the
* bundle is started. This start method registers the properties
* to the ConfigurationManagement service.
*/
public void start() {
configurationManagement.addConfigurationSetDefinition(
getClass().getResource("/configuration/presentation_config_metatype.xml"));
configurationManagement.parseAndAddConfigurationSets(
getClass().getResource("/configuration/presentation_config.xml"), false);
}
When i change the name of the start() method to run(), everything seems to work nicely again, but i don't know if this is a valid solution for this problem...
Could anyone give me some more info about this particular issue?!
EDIT: i found this topic, but the solution provided there did not really help, since i allready have the
definition.setProperties(new Hashtable<String, String>());
line in my code.