You are not logged in.
Hello,
I pulled the binary CE bundle from SourceForge yesterday, unpacked it, and deployed it into an Apache Tomcat 9.0.111 service running on Java 21. After adjusting a few configuration settings to get it to connect to my freshly-created RS 5.0 database on MariaDB 10.11, I get this error on startup:
com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalArgumentException: Unsupported class file major version 64
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2087)
at com.google.common.cache.LocalCache.get(LocalCache.java:4019)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4042)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:5024)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:5031)
at com.google.inject.internal.util.StackTraceElements.forMember(StackTraceElements.java:67)
at com.google.inject.internal.SourceFormatter.formatMember(SourceFormatter.java:91)
at com.google.inject.internal.SourceFormatter.formatInjectionPoint(SourceFormatter.java:97)
at com.google.inject.internal.SourceFormatter.format(SourceFormatter.java:49)
at com.google.inject.internal.GenericErrorDetail.formatDetail(GenericErrorDetail.java:26)
at com.google.inject.spi.ErrorDetail.format(ErrorDetail.java:63)
at com.google.inject.internal.Messages.formatMessages(Messages.java:90)
at com.google.inject.CreationException.getMessage(CreationException.java:50)
at java.base/java.lang.Throwable.getLocalizedMessage(Throwable.java:398)
at java.base/java.lang.Throwable.toString(Throwable.java:497)
at java.base/java.lang.String.valueOf(String.java:4465)
at java.base/java.io.PrintWriter.println(PrintWriter.java:1021)
at java.base/java.lang.Throwable$WrappedPrintWriter.println(Throwable.java:801)
at java.base/java.lang.Throwable.lockedPrintStackTrace(Throwable.java:684)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:673)
at java.base/java.lang.Throwable.printStackTrace(Throwable.java:749)
at java.logging/java.util.logging.SimpleFormatter.format(SimpleFormatter.java:177)
at java.logging/java.util.logging.StreamHandler.publish0(StreamHandler.java:240)
at java.logging/java.util.logging.StreamHandler.publish(StreamHandler.java:224)
at java.logging/java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:95)
at java.logging/java.util.logging.Logger.log(Logger.java:983)
at java.logging/java.util.logging.Logger.doLog(Logger.java:1010)
at java.logging/java.util.logging.Logger.logp(Logger.java:1287)
at org.apache.juli.logging.DirectJDKLog.log(DirectJDKLog.java:170)
at org.apache.juli.logging.DirectJDKLog.error(DirectJDKLog.java:141)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4053)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4489)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:597)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:569)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1171)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1880)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1082)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:467)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1576)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:109)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:336)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:774)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:719)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1201)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1191)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:82)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:747)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:209)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:410)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:872)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Catalina.start(Catalina.java:736)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 64
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:199)
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:180)
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:166)
at com.google.inject.internal.asm.$ClassReader.<init>(ClassReader.java:287)
at com.google.inject.internal.util.LineNumbers.<init>(LineNumbers.java:69)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:48)
at com.google.inject.internal.util.StackTraceElements$1.load(StackTraceElements.java:44)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3576)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2318)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2191)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2081)
... 68 more
Dec 15, 2025 1:05:24 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
Dec 15, 2025 1:05:24 PM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/reportserver] startup failed due to previous errors
Thereafter, there are a bunch of errors because the context has been terminated and code is trying to load classes from the now-definct web application ClassLoader, but those are ignorable for the time being.
The root cause of the error is that Google Guice version 5.1.0 is included in RS 5.0 but it only supports Java versions up to Java 17 (class file version 61). The RS CE binary bundle was built using Java 20 (class file version 64) and all of the classes included in it have this class file format version. Guide cannot read them, so it fails on startup.
The documentation for RS 5 (https://reportserver.net/en/documentation) states:
"
ReportServer requires an installed Java Runtime Environment (JRE) in version 11 or newer.
"
But actually these .class files aren't readable even by the JVM unless Java 20 or later is present. And when the JVM can load the files, Guice cannot.
In order to support Java 21, you need to upgrade to Google Guice 6.0 or later.
Or compile the code with a java-target of Java 11 ... or Java 17, depending upon which versions are actually required or supported.
I tried downloading the source distribution of RS and I can't figure out how to actually build it, so I can't re-build with Java 17 just to see if it will work if re-compiled with a correct build environment.
I can't be the first person since June 2025 to download this bundle. Has anyone been able to get it working?
Offline
Hello ChristopherSchultz,
Could you please list the configuration settings you've made?
Best regards
Jasmin
Offline
The only changes to the expanded ZIP file I've made are to edit the WEB-INF/classes/META-INF/persistence.xml file and set the hibernate settings for my database:
<property name="hibernate.connection.driver_class" value="org.mariadb.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mariadb://localhost/reportserver"/>
<property name="hibernate.connection.username" value="xxx"/>
<property name="hibernate.connection.password" value="xxx"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MariaDBDialect"/>
Before the database existed, the application would start without any (major) errors in the log, but give me a diagnostic error page when I tried to access the application's front page through a browser. So the application IS capable of starting in this environment.
Offline
Hello ChristopherSchultz,
The developers informed me that the changes should be made in persistence.properties, not persistence.xml.
Please revert the changes to persistence.xml and restore it to its original state.
For example, you can do this by restoring from a backup, if you made one previously, or by downloading the file again.
Best regards
Jasmin
Offline
Okay, I have restored the original persistence.xml file and copied and customized the persistence.properties file instead. If I intentionally use the wrong username or password for the database, the application deploys and I get a diagnostic message when visiting it via the web browser that it wasn't able to connect to the database. When I use the correct values, I get the exact same error: Google Guice can't handle the .class file format of the files shipped in the CE ZIP file.
Offline
Hello ChristopherSchultz,
The developers have informed me that the Guice issue will be resolved in the upcoming ReportServer version 6.0.
Please wait for version 6.0, which will be released in early 2026.
Best regards
Jasmin
Offline