BundleException by Apache Karaf 4.2.6 with Java 12 - apache-karaf

Apache Karaf 4.2.6 launched with JDK 11 or 12 throws an exception while starting and stop. I need at least JDK 11 because I have an application written in JDK 11 using the Websocket class available since JDK 11.
org.osgi.framework.BundleException: Exported package names cannot be zero length.
at org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeExportClauses(ManifestParser.java:876)
at org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:215)
at org.apache.felix.framework.ExtensionManager.<init>(ExtensionManager.java:261)
at org.apache.felix.framework.Felix.<init>(Felix.java:429)
at org.apache.felix.framework.FrameworkFactory.newFramework(FrameworkFactory.java:28)
at org.apache.karaf.main.Main.launch(Main.java:256)
at org.apache.karaf.main.Main.main(Main.java:178)

Related

How do I fix the controlsfx demo program to initialize class org.controlsfx.glyphfont.FontAwesome?

The controlsfx JavaFX library has a demo program and some controls fail to run, such as List Selection View, or List Action View or BreadCrumbBar.
I re-tested this on a new Windows 10 PC, with JDK11 and Gradle 5.5 freshly installed. I downloaded the branch 9 .zip, verified that the module-info.java files are present, and entered
gradlew run
For the above mentioned examples, the console shows:
Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: Could not initialize class org.controlsfx.glyphfont.FontAwesome
at org.controlsfx.samples/org.controlsfx.samples.HelloListActionView.createActions(HelloListActionView.java:144)
at org.controlsfx.samples/org.controlsfx.samples.HelloListActionView.getPanel(HelloListActionView.java:63)
at org.controlsfx.fxsampler/fxsampler.SampleBase.buildSample(SampleBase.java:77)
at org.controlsfx.fxsampler/fxsampler.FXSampler.buildSampleTabContent(FXSampler.java:397)
at org.controlsfx.fxsampler/fxsampler.FXSampler.updateTab(FXSampler.java:305)
at org.controlsfx.fxsampler/fxsampler.FXSampler.changeSample(FXSampler.java:296)
at org.controlsfx.fxsampler/fxsampler.FXSampler.lambda$start$1(FXSampler.java:159)
JAVA_HOME is C:\Program Files\Java\jdk-11.0.3
gradle --version
------------------------------------------------------------
Gradle 5.5
------------------------------------------------------------
Build time: 2019-06-28 17:36:05 UTC
Revision: 83820928f3ada1a3a1dbd9a6c0d47eb3f199378f
Kotlin: 1.3.31
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.14 compiled on March 12 2019
JVM: 11.0.3 (Oracle Corporation 11.0.3+12-LTS)
OS: Windows 10 10.0 amd64
I'd like to take advantage of FontAwesome as well as the above mentioned controls.
I experimented with
JDK 11, 11.0.1, 11.0.2, 11.0.2
Gradle 5.2, 5.5
Command line
IntelliJ
Another PC I usually develop on
ControlsFX has a large number of external dependencies which are handled in the build.gradle file.
If your project does not use gradle to build the library, but instead it imports a .jar of it, then you should add all those options to the VM. To do that in IntelliJ, go to Edit Configuration, there you can find a VM options field.
You can try to copy and paste these options:
--add-exports=javafx.graphics/com.sun.javafx.scene=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.scene.traversal=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control.behavior=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control=org.controlsfx.controls --add-exports=javafx.controls/com.sun.javafx.scene.control.inputmap=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.collections=org.controlsfx.controls --add-exports=javafx.base/com.sun.javafx.runtime=org.controlsfx.controls --add-exports=javafx.web/com.sun.webkit=org.controlsfx.controls --add-exports=javafx.graphics/com.sun.javafx.css=org.controlsfx.controls
This worked for me. I was facing the same issue with ControlsFX 11.0, while using ListSelectionView.

CAPSULE EXCEPTION while deployNodes task

I am trying to deploy IRS demo application on windows server, I have installed java already:
C:\Users\Administrator>java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) Client VM (build 25.181-b13, mixed mode)
I am getting following exception for node:
CAPSULE EXCEPTION: Could not find Java installation for requested version [Min. Java version: 1.8.0 JavaVersion: null Min. update version: {1.8=171}] (JDK required: false). You can override the used Java version with the -Dcapsule.java.home flag. (for stack trace, run with -Dcapsule.log=verbose)
can you help with whats going wrong? In the same machine environment, I have previously developed and deployed many corDapps.
This was caused by forgetting to update the Windows environment variable after installing Java 1.8.181.
Forgetting to update the Windows environment variable has also been known to cause errors of the type:
CAPSULE EXCEPTION: Illegal char <"> at index 0: "C:\WINDOWS while
processing system property java.library.path: C:\Program
Files\Java\jdk1.8.0_191\bin;

Java 6 or 7 is required error while creating Glassfish server in Oracle package for Eclipse

I am Creating Glassfish server in Oracle package for Eclipse.
Current java version is 1.8 but still getting error "Java 6 or 7 is required"
Error snippet below
Glassfish 3 won't work with Java 8.
If you want to use Java 8, try Glassfish 4.+

Is V3 Identity Authentication compatible with JDK 1.6? If yes, which and how should I make use of it?

I am just wondering if the OSFactory.builderV3() method can run on JDK 1.6.
It returns the following error:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/openstack4j/openstack/OSFactory : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at Test.main(Test.java:9)
I do know there is a Jersy2JDK1.6 connector works on Keystone V2, like:
org.pacesys
openstack4j-core
3.0.0
org.pacesys.openstack4j.connectors
openstack4j-jersey2-jdk1.6
3.0.0
but in terms of my project, it requires V3 Authentication.
The problem is actually a Java problem. You are trying to run code that was built for JDK 1.8 or later on a JDK 1.6 platform. That won't work. The JDK 1.6 JVM does not understand that version of the bytecode.
In theory, you could try downloading the sourcecode for the library and its dependencies, and building them with a JDK 1.6 compiler / tool-chain. HOWEVER, that will only work if the library and its dependencies are fully Java 6 compatible; i.e. both in terms of source code syntax AND use of the standard Java SE APIs.
In this case, I think it is highly unlikely that that will work. According to the README.md file in the OpenStack4j Github repo:
Requirements
OpenStack4j 3.0.X - Java 7 (JDK 8 preferred)
OpenStack4j 2.0.X - Java 7
The best solution is to upgrade to Java 8. Java 6 was EOL'ed in April 2013.
There is a saying:
"The most important thing to do if you are in a hole is to stop digging."
A dev't project that is stuck on Java 6 is in a hole.

tomcat eclipse mssql driver demanding Java 1.6

I started writing my servlet in Java 1.6 for tomcat 7, but then I later needed to roll back to Java 1.5 for tomcat 6. I'm using eclipse. For some reason though, when I try to run my servlet it gives me the following error:
SEVERE: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Please use the JDBC 4 driver (sqljdbc4.jar) instead.
Jun 20, 2011 12:33:40 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet Auth threw exception
java.lang.UnsupportedOperationException: Java Runtime Environment (JRE) version 1.6 is not supported by this driver. Please use the JDBC 4 driver (sqljdbc4.jar) instead.
Now originally I had sqljdbc4.jar in my WEB-INF/lib directory but I swapped it out for sqljdbc.jar so that it would be 1.5 compatible. That's when I started getting the error. Hunting around in the properties panels, I saw that JVM 1.6 was still in the Build Path libraries so I deleted those. But now it can't find HTTPServlet!
I added back a servlet.jar file I had but it just gives me the "version 1.6 is not supported by this driver" message. Curiously, I also have to use the oracle jdbc driver for this servlet and it is not giving me these errors when I backgraded the project and the driver jar to the 1.5 compatible version.
How do I get the eclipse project to not think it is 1.6?
You may need to change the Java facet from 1.6 to 1.5:
Project properties → Project Facets → Java → 1.5

Resources