0

I'm installing Knowage in Windows. But when trying to make it work with OpenJDK 12, I've found several NoClassDefFoundError regarding classes in javax.xml (this one can be solved downloading small jar files) and sun.misc.BASE64Encoder (there are no jars for this one). Probably more, but those appear just trying to login. It seems to work fine with Java SE 8.

I have several solutions:

  1. Leave Knowage with it's own Tomcat running Java SE 8, have a second Tomcat running Java 12 for any other app. But I'd like to avoid having two Tomcats, even if I'll have an Apache front-end proxying them anyway. Seems wasteful.

  2. Fork Knowage, modify, compile, deploy, keep updated, redeploy, repeat. But I'd like to avoid the extra work.

  3. Report an issue (done), wait for others to solve it. But I'd like to avoid the uncertainty of not knowing when it will be solved, if ever.

  4. Take the rt.jar from Java SE 8, that has versions of those missing classes, place it in the tomcat/lib folder. I lean to this one, hence the title, at least until Knowage gets modified. But I don't know if this is safe. It seems to work: I can login! But, will it break the Universe or give headaches in the future?

Could you recommend me one solution or another?

dmcontador
  • 660
  • 1
  • 8
  • 18
  • It sounds like the version of Knowage hasn't been setup for Java 9+. The `javax.xml` classes were removed in Java 9 and anything in the `sun` package has been deprecated for years. Do they have a version designed for Java 9 and above? – stdunbar Sep 19 '19 at 16:03
  • Well, not at least for the Community Edition of Knowage, the one I'm using, and the one hosted in GitHub. I don't know if they have a version for the Enterprise Edition. – dmcontador Sep 20 '19 at 05:28

0 Answers0