How to init CORBA in Quarkus Java 17 application?

236 Views Asked by At

In pom.xml there is dependency:

<dependency>
  <groupId>org.jboss.openjdk-orb</groupId>
  <artifactId>openjdk-orb-jakarta</artifactId>
  <version>8.1.9.Final</version>
</dependency>

Now I try to init CORBA ORB:

var properties = new Properties();
var args = new String[]{"-ORBInitRef", nameServiceReference);
var orb = ORB.init(args, properties);  // this fails

The exception is:

java.lang.RuntimeException: Failed to start quarkus
Caused by: java.lang.NoClassDefFoundError: org/omg/CORBA/NamedValue
Caused by: java.lang.ClassNotFoundException: org.omg.CORBA.NamedValue

What I tried is to use different CORBA implementations including Glassfish and Jacorb:

<dependency>
  <groupId>org.jacorb</groupId>
  <artifactId>jacorb-omgapi</artifactId>
  <version>3.9</version>
</dependency>

But the problem still exists.

In stubs generated by IDL compiler there is NamedValue interface and _NamedValueStub class:

public interface NamedValue extends NamedValueOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity 
{
} // interface NamedValue

public class _NamedValueStub extends org.omg.CORBA.portable.ObjectImpl implements org.omg.CORBA.NamedValue
{

  // Type-specific CORBA::Object operations
  private static String[] __ids = {"IDL:CORBA/NamedValue:1.0"};

  // ............
}

The IDL defining it contains:

module CORBA
{
    interface NamedValue { };
};

Any workaround for this? How to init ORB properly?

0

There are 0 best solutions below