Please or Register to create posts and topics.

Requirements... Tomcat and JDK

Will 8.2CE run under tomcat 10?
What is (if any) the JDK version that works with it? JDK 11, 17, higher?

Hi zkiwi,

Tomcat 10 uses jakarta. instead of javax.  namespaces (See https://blogs.oracle.com/javamagazine/post/transition-from-java-ee-to-jakarta-ee for the background) and is therefore not compatible with web apps developed for Java EE and Jakarta EE 8. Making JRS compatible with Tomcat 10 would require some very deep source code changes.

Cloud is planning to migrate Jasper Reports Server Pro to Jakarta in version 10. You can check out their recent webinar https://www.youtube.com/watch?v=x1FaqIM7Io0 for more information.

As for JDK versions - JRS needs to be compiled with Java compliance level 1.8. I've verified that this works with JDK versions 1.8 or 11, but not 17. You can run a JasperReports server on Java 17, although there is a bug where you can't import an exported repository if the repository had any report schedules in it. Apart from that, everything works, though. Java 17 is officially supported after all. Java 1.8 and 11 also work, of course, and without that export bug.

So...
I could install and run JRS 8.2CE with JDK 11 in play
BUT
Tomcat would have to be Tomcat 9

Is that right, or is my brain pining for the fjords etc?

No, no fjords. You've understood correctly.

The community is also working on migrating the CE version to Jakarta. It should be implemented sometime during the first half of next year.

Great news on the next year thing
Weirdly fits perfectly into my work's time frame

Hello zkiwi34,

I forgot to mention the other day: You can fix the import+schedule problem and thus get full support for Java 17 by configuring your application server a little. You have to add the following JVM options:

--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang.ref=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED
--add-opens=java.base/java.nio.channels=ALL-UNNAMED
--add-opens=java.base/java.nio=ALL-UNNAMED
--add-opens=java.base/java.security=ALL-UNNAMED
--add-opens=java.base/java.text=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent.locks=ALL-UNNAMED
--add-opens=java.base/java.util.concurrent=ALL-UNNAMED
--add-opens=java.base/java.util.regex=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/javax.security.auth.login=ALL-UNNAMED
--add-opens=java.base/javax.security.auth=ALL-UNNAMED
--add-opens=java.base/jdk.internal.access.foreign=ALL-UNNAMED
--add-opens=java.base/sun.net.util=ALL-UNNAMED
--add-opens=java.base/sun.nio.ch=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
--add-opens=java.base/sun.util.calendar=ALL-UNNAMED

See section 4.1.1 of the JRS CE 8.2.0 install guide for details on how to set these in different app servers.

Sorry for forgetting to mention this until now.