I dont know anymore what to do. I am sitting on this problem since 3 days.
I have an OSGi-Bundle and in this bundle I create an ExportOperation:
public void createExportOperation(IProject project, IPath buildLocation, IPath exportLocation) throws CoreException{
try {
FeatureExportInfo exportInfo = this.initExport(buildLocation, exportLocation, project);
exportInfo.qualifier = AdvancedFeatureExportOperation.getDateQualifier();
Job job = new AdvancedFeatureExportOperation(exportInfo, "Project Deployment");
job.setUser(true);
job.setRule(ResourcesPlugin.getWorkspace().getRoot());
job.schedule();
} catch (Exception exception) {
exception.printStackTrace();
}
}
AdvancedFeatureExportOperation is only a wrapper and extends org.eclipse.pde.internal.core.exports.FeatureExportOperation
If I run my bundle within eclipse (OSGi HostConsole) it works. But if I start the bundle separate in OSGi only, I get after 10mins in one of the last steps of the export operation the following error in my logs:
!ENTRY org.eclipse.core.jobs 4 2 2022-09-22 20:24:07.425
!MESSAGE An internal error occurred during: "Project Deployment".
!STACK 0
java.lang.NoClassDefFoundError: org/xml/sax/helpers/DefaultHandler
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:638)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:613)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:574)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:461)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:638)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:613)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:574)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:492)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:465)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:395)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:464)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at org.eclipse.pde.internal.build.site.BuildTimeFeatureFactory.parseBuildFeature(BuildTimeFeatureFactory.java:79)
at org.eclipse.pde.internal.build.site.BuildTimeFeatureFactory.createFeature(BuildTimeFeatureFactory.java:50)
at org.eclipse.pde.internal.build.site.BuildTimeSite.createFeature(BuildTimeSite.java:469)
at org.eclipse.pde.internal.build.site.compatibility.FeatureReference.getFeature(FeatureReference.java:39)
at org.eclipse.pde.internal.build.site.BuildTimeSite.resolveFeatureReferences(BuildTimeSite.java:327)
at org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:296)
at org.eclipse.pde.internal.build.site.BuildTimeSite.findFeature(BuildTimeSite.java:288)
at org.eclipse.pde.internal.build.BuildScriptGenerator.generateFeatures(BuildScriptGenerator.java:252)
at org.eclipse.pde.internal.build.BuildScriptGenerator.generate(BuildScriptGenerator.java:127)
at org.eclipse.pde.internal.core.exports.FeatureExportOperation.doExport(FeatureExportOperation.java:256)
at org.eclipse.pde.internal.core.exports.FeatureExportOperation.doExport(FeatureExportOperation.java:223)
at org.eclipse.pde.internal.core.exports.FeatureExportOperation.run(FeatureExportOperation.java:107)
at com.iisy.solvatio.studio.deployment.wizards.AdvancedFeatureExportOperation.run(AdvancedFeatureExportOperation.java:24)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.ClassNotFoundException: org.xml.sax.helpers.DefaultHandler cannot be found by org.eclipse.equinox.p2.publisher.eclipse_1.1.200.v20130516-1953
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 45 more
I have installed exact the same bundles like they are installed in eclipse. Alle dependencies are fullfiled. I even downloaded extra org.everit.osgi.bundles.org.apache.xmlcommons.full-1.4.1-20150918.jar where org.xml.sax.helpers.DefaultHandler will be exported and in the manifest of my bundle I habe this one as Require-Bundle.
It dostn work but in eclipse I dont need extra bundles either. And because I was so desperate I even changed the manifest-file for the bunlde org.eclipse.equinox.p2.publisher.eclipse manually so org.everit.osgi.bundles.org.apache.xmlcommons.full will be listed as Require-Bundle.
But no chance, du you have any idea what is the problem or how I could track down the issue? Thank you very much for every help!