Java LinkageError creating BPEL process

52 views Asked by At

I add some preliminary information. For a thesis project, I need to develop BPEL. Currently, I am in a Linux operating environment, installed on a virtual machine. From the "Install New Software" function of Eclipse, I installed the plugins for SOA Developments. I added a new server from Eclipse, namely Apache ODE, whose environment variables are correctly set. After doing that, I go to create a new BPEL project, and after creating it, I right-click on the bpelContent folder and go to create a new BPEL process. After setting the process name and namespace, however, the creation fails and does not create the .bpel XML file for me, giving me this error:

java.lang.LinkageError: loader constraint violation for class org.eclipse.bpel.model.impl.BPELExtensibleElementImpl: when selecting overriding method 'javax.wsdl.extensions.ExtensibilityElement org.eclipse.bpel.model.impl.BPELExtensibleElementImpl.removeExtensibilityElement(javax.wsdl.extensions.ExtensibilityElement)' the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @817cd05 of the selected method's type org.eclipse.bpel.model.impl.BPELExtensibleElementImpl, and the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @6954431a for its super type org.eclipse.wst.wsdl.internal.impl.ExtensibleElementImpl have different Class objects for the type javax.wsdl.extensions.ExtensibilityElement used in the signature (org.eclipse.bpel.model.impl.BPELExtensibleElementImpl is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @817cd05, parent loader 'platform'; org.eclipse.wst.wsdl.internal.impl.ExtensibleElementImpl is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @6954431a, parent loader 'platform')
   at org.eclipse.bpel.model.impl.BPELFactoryImpl.createProcess(BPELFactoryImpl.java:339)
   at org.eclipse.bpel.model.resource.BPELReader.xml2Process(BPELReader.java:960)
   at org.eclipse.bpel.model.resource.BPELReader.xml2Resource(BPELReader.java:944)
   at org.eclipse.bpel.model.resource.BPELReader.pass1(BPELReader.java:403)
   at org.eclipse.bpel.model.resource.BPELReader.read(BPELReader.java:235)
   at org.eclipse.bpel.model.resource.BPELResourceImpl.doLoad(BPELResourceImpl.java:140)
   at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1563)
   at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1342)
   at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
   at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
   at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:406)
   at org.eclipse.bpel.common.ui.editmodel.ResourceInfo.load(ResourceInfo.java:246)
   at org.eclipse.bpel.common.ui.editmodel.EditModel.getResourceInfo(EditModel.java:220)
   at org.eclipse.bpel.common.ui.editmodel.EditModelClient.loadPrimaryResource(EditModelClient.java:61)
   at org.eclipse.bpel.ui.util.BPELEditModelClient.loadPrimaryResource(BPELEditModelClient.java:59)
   at org.eclipse.bpel.ui.BPELMultipageEditorPart.loadModel(BPELMultipageEditorPart.java:1121)
   at org.eclipse.bpel.ui.BPELMultipageEditorPart.createDesignPage(BPELMultipageEditorPart.java:425)
   at org.eclipse.bpel.ui.BPELMultipageEditorPart.createPages(BPELMultipageEditorPart.java:481)
   at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:333)
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityEditor.createPartControl(CompatibilityEditor.java:96)
   at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
   at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
   at java.base/java.lang.reflect.Method.invoke(Method.java:580)
   at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
   at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:976)
   at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:938)
   at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:138)
   at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:385)
   at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:311)
   at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:203)
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
   at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
   at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
   at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
   at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:105)
   at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
   at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
   at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
   at org.eclipse.swt.widgets.Display.syncExec(Display.java:5959)
   at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
   at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
   at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:208)
   at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:206)
   at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
   at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
   at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
   at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
   at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
   at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
   at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
   at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
   at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
   at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
   at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
   at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:661)
   at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:625)
   at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:796)
   at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:401)
   at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1270)
   at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3233)
   at org.eclipse.ui.internal.WorkbenchPage.lambda$11(WorkbenchPage.java:3123)
   at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:67)
   at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3121)
   at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3091)
   at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3074)
   at org.eclipse.ui.ide.IDE.openEditor(IDE.java:582)
   at org.eclipse.bpel.ui.wizards.NewBpelFileWizard$2.run(NewBpelFileWizard.java:191)
   at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
   at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:132)
   at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5039)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4519)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
   at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
   at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
   at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
   at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
   at java.base/java.lang.reflect.Method.invoke(Method.java:580)
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
   at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
   at org.eclipse.equinox.launcher.Main.main(Main.java:1432)

Honestly, I cannot understand the nature of the problem. LinkageError indicates dependency errors between classes, but where are these classes. Poking around on the Internet I read that some incompatible jars need to be deleted, but where can I find them in my Linux working environment? Which ones are they? If anyone can help me solve this error, I would be very grateful.

2

There are 2 answers

1
PIER PAOLO ZAPPIA On

This is the first error in Error Log View:

eclipse.buildId=4.30.0.20231201-1200
java.version=21.0.2
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=it_IT
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product

This is a continuation of log file /home/azaprocky/eclipse-workspace/.metadata/.bak_0.log
Created Time: 2024-03-04 10:17:54.108

org.eclipse.ui
Error
Mon Mar 04 10:18:20 CET 2024
Unhandled event loop exception

java.lang.NullPointerException: Cannot invoke "org.eclipse.e4.core.contexts.IEclipseContext.get(java.lang.Class)" because "this.e4Context" is null
    at org.eclipse.ui.internal.PartSite.getKeyBindingService(PartSite.java:548)
    at org.eclipse.ui.part.MultiPageEditorPart.deactivateSite(MultiPageEditorPart.java:867)
    at org.eclipse.ui.part.MultiPageEditorPart.pageChange(MultiPageEditorPart.java:796)
    at org.eclipse.bpel.ui.BPELMultipageEditorPart.pageChange(BPELMultipageEditorPart.java:1383)
    at org.eclipse.ui.part.MultiPageEditorPart.lambda$1(MultiPageEditorPart.java:271)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5854)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1538)
    at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1316)
    at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3252)
    at org.eclipse.swt.custom.CTabFolder.onFocus(CTabFolder.java:1749)
    at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:327)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5854)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1534)
    at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:4936)
    at org.eclipse.swt.widgets.Control.gtk_event_after(Control.java:3800)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2497)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:6883)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6162)
    at org.eclipse.swt.internal.gtk.GTK.gtk_widget_grab_focus(Native Method)
    at org.eclipse.swt.widgets.Control.forceFocus(Control.java:2955)
    at org.eclipse.swt.widgets.Composite.forceFocus(Composite.java:723)
    at org.eclipse.swt.widgets.Control.forceFocus(Control.java:2948)
    at org.eclipse.swt.widgets.Control.setFocus(Control.java:5525)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1674)
    at org.eclipse.swt.custom.CTabFolder.setFocus(CTabFolder.java:2690)
    at org.eclipse.swt.widgets.Composite.setFocus(Composite.java:1672)
    at org.eclipse.ui.internal.ErrorEditorPart.setFocus(ErrorEditorPart.java:84)
    at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.delegateSetFocus(CompatibilityPart.java:226)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:298)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:304)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:226)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:148)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.focusGui(PartRenderingEngine.java:790)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:773)
    at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.activate(PartServiceImpl.java:686)
    at org.eclipse.e4.ui.internal.workbench.swt.AbstractPartRenderer.activate(AbstractPartRenderer.java:97)
    at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.lambda$0(ContributedPartRenderer.java:63)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5854)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1529)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1555)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1538)
    at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:2213)
    at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:3606)
    at org.eclipse.swt.widgets.Control.gtk_button_press_event(Control.java:3499)
    at org.eclipse.swt.widgets.Button.gtk_button_press_event(Button.java:596)
    at org.eclipse.swt.widgets.Widget.windowProc(Widget.java:2491)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:6883)
    at org.eclipse.swt.widgets.Button.windowProc(Button.java:1349)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:6162)
    at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_do_event(Native Method)
    at org.eclipse.swt.widgets.Display.eventProc(Display.java:1597)
    at org.eclipse.swt.internal.gtk3.GTK3.gtk_main_iteration_do(Native Method)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4513)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:648)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:342)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:208)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
    at java.base/java.lang.reflect.Method.invoke(Method.java:580)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:651)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:588)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1459)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1432)
0
Deotyma On

The error you're encountering, java.lang.LinkageError: loader constraint violation, is a complex issue that arises from the way Java class loaders manage classes and interfaces, particularly when the same class is loaded by multiple class loaders in a Java application. This specific error occurs when there are conflicting definitions of a class or interface used by different parts of your application or by different libraries/frameworks that your application depends on.

In this context, the error message indicates there is a loader constraint violation involving the class org.eclipse.bpel.model.impl.BPELExtensibleElementImpl. This class is attempting to override a method that uses javax.wsdl.extensions.ExtensibilityElement in its signature. However, the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader for BPELExtensibleElementImpl and the class loader for its superclass org.eclipse.wst.wsdl.internal.impl.ExtensibleElementImpl have loaded different versions of javax.wsdl.extensions.ExtensibilityElement. This discrepancy leads to the JVM throwing a LinkageError because it cannot ensure type safety due to the different class versions.

This problem can arise in environments like OSGi (which Eclipse uses extensively), where modularization allows different components to use their own class loaders. These issues are often related to the configuration of the classpath and the specific setup of OSGi bundles.

Ensure that there are no conflicting versions of the libraries that provide javax.wsdl.extensions.ExtensibilityElement. You might need to align the versions across your project's dependencies.

If you have still this error so update or delete conflicting dependencies. If a particular library or framework version is causing the issue, consider updating to a newer version or replacing it with an alternative that does not cause conflicts.