I want to use Google OR-Tools with ONOS (OSGI) and it shows this error whenever I activate this application.
I tried many fixes but neither worked.
Provided is my pom.xml, features.xml and app.xml
Component(129)] : The activate method has thrown an exception
java.lang.NoClassDefFoundError: com/sun/jna/Platform at
com.google.ortools.Loader.(Loader.java:34) ~[?:?] at
edu.uta.flowsched.FederatedLearningFlowOptimizer.optimizeFlowAssignment(FederatedLearningFlowOptimizer.java:28)
~[?:?]…. ….
Caused by: java.lang.ClassNotFoundException: com.sun.jna.Platform not
found by
wrap_file__tmp_onos-2.6.0_apache-karaf-4.2.9_system_com_google_ortools_ortools-java_9.10.4067_ortools-java-9.10.4067.jar
[203] at
org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
~[?:?] at
org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
~[?:?] at
org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:521)
~[?:?] … 49 more
Here is my pom.xml
<dependencies>
...
...
<dependency>
<groupId>com.google.ortools</groupId>
<artifactId>ortools-java</artifactId>
<version>9.10.4067</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>5.15.0</version>
</dependency>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.25.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.onosproject</groupId>
<artifactId>onos-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Karaf-Commands>edu.uta.flowsched</Karaf-Commands>
</instructions>
</configuration>
</plugin>
</plugins>
Here is my features.xml
<features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="flowsched-1.0-SNAPSHOT">
<feature name="flowsched" version="1.0-SNAPSHOT"
description="ONOS OSGi bundle archetype">
<feature>onos-api</feature>
<bundle>wrap:mvn:edu.uta/flow-scheduling/1.0-SNAPSHOT</bundle>
<bundle>wrap:mvn:net.java.dev.jna/jna/5.15.0</bundle>
<bundle>wrap:mvn:com.google.protobuf/protobuf-java/3.25.3</bundle>
<bundle>wrap:mvn:com.google.ortools/ortools-java/9.10.4067</bundle>
</feature>
</features>
and app.xml
<app name="edu.uta.flowsched" origin="ON.Lab" version="1.0-SNAPSHOT"
category="Flow Sched App" url="http://onosproject.org" title="Flow Sched"
featuresRepo="mvn:edu.uta/flow-scheduling/1.0-SNAPSHOT/xml/features"
features="flowsched">
<description>ONOS OSGi bundle archetype</description>
<artifact>mvn:edu.uta/flow-scheduling/1.0-SNAPSHOT</artifact>
<artifact>mvn:net.java.dev.jna/jna/5.15.0</artifact>
<artifact>mvn:com.google.protobuf/protobuf-java/3.25.3</artifact>
<artifact>mvn:com.google.ortools/ortools-java/9.10.4067</artifact>
</app>
What do you advise?
Best