You are not logged in.
Pages: 1
I've uploaded BIRT reports to ReportServer and made them available to a teamspace. Unfortunately they throw an exception the Details and History tabs. Preview and running the report works. The issue occurs not for all reports I've uploaded. Both reports which present the issue share a BIRT library for Datasets and some other objects and feature a single Data Source parameter.
What's wrong?
Conrad
Type Exception Report
Message javax.script.ScriptException: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.TimeZone sun.util.calendar.CalendarDate.zoneinfo accessible: module java.base does not "opens sun.util.calendar" to unnamed module @104e2531
Beschreibung The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.IllegalStateException: javax.script.ScriptException: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.TimeZone sun.util.calendar.CalendarDate.zoneinfo accessible: module java.base does not "opens sun.util.calendar" to unnamed module @104e2531
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.getDocumentation(ReportDocumentationServlet.java:269)
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.doGet(ReportDocumentationServlet.java:83)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
Root Cause
javax.script.ScriptException: java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.TimeZone sun.util.calendar.CalendarDate.zoneinfo accessible: module java.base does not "opens sun.util.calendar" to unnamed module @104e2531
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:334)
org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72)
java.scripting/javax.script.CompiledScript.eval(CompiledScript.java:93)
net.datenwerke.rs.reportdoc.service.ReportDocumentationServiceImpl.execute(ReportDocumentationServiceImpl.java:196)
net.datenwerke.rs.reportdoc.service.ReportDocumentationServiceImpl.executeDocumentation(ReportDocumentationServiceImpl.java:87)
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.getDocumentation(ReportDocumentationServlet.java:265)
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.doGet(ReportDocumentationServlet.java:83)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
Root Cause
java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.TimeZone sun.util.calendar.CalendarDate.zoneinfo accessible: module java.base does not "opens sun.util.calendar" to unnamed module @104e2531
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:93)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:96)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:96)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:96)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:96)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:96)
net.datenwerke.rs.utils.jpa.EntityUtils.deepHibernateUnproxy(EntityUtils.java:67)
org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
net.datenwerke.rs.reportdoc.service.reports.Script1.run(Script1.groovy:320)
org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:331)
org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72)
java.scripting/javax.script.CompiledScript.eval(CompiledScript.java:93)
net.datenwerke.rs.reportdoc.service.ReportDocumentationServiceImpl.execute(ReportDocumentationServiceImpl.java:196)
net.datenwerke.rs.reportdoc.service.ReportDocumentationServiceImpl.executeDocumentation(ReportDocumentationServiceImpl.java:87)
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.getDocumentation(ReportDocumentationServlet.java:265)
net.datenwerke.rs.reportdoc.server.ReportDocumentationServlet.doGet(ReportDocumentationServlet.java:83)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
javax.servlet.http.HttpServlet.service(HttpServlet.java:529)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
net.datenwerke.security.service.security.aop.SecurityCheckInterceptor.invoke(SecurityCheckInterceptor.java:112)
com.google.inject.servlet.ServletDefinition.doServiceImpl(ServletDefinition.java:290)
com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:280)
com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:184)
com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:89)
com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)
com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
Hinweis Der komplette Stacktrace der Ursache ist in den Server logs zu finden
Apache Tomcat/9.0.85
Offline
Hi beccon4,
your error is:
java.lang.reflect.InaccessibleObjectException: Unable to make field private java.util.TimeZone sun.util.calendar.CalendarDate.zoneinfo accessible: module java.base does not "opens sun.util.calendar" to unnamed module @104e2531
pls add this to your tomcat configuration:
--add-opens java.base/sun.util.calendar=ALL-UNNAMED
in a similar way as the others, documented here: https://reportserver.net/de/dokumentati … -on-ubuntu
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.net=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang.invoke=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.util=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang.ref=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/java.lang.reflect=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS --add-opens=java.base/sun.reflect.generics.repository=ALL-UNNAMED"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS -Djavax.net.ssl.trustStoreType=JKS"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS -Dfile.encoding=UTF-8"
JDK_JAVA_OPTIONS="$JDK_JAVA_OPTIONS -Djava.awt.headless=true"
Consider refactoring your BIRT reports so that they do not rely on the internal sun.util.calendar.CalendarDate.zoneinfo. Using internal APIs is risky since they are not guaranteed to be available across different Java versions. Instead, use standard Java date/time libraries, such as the java.time package, introduced in Java 8, which provides a much more robust API for date and time manipulation.
Use java.time.ZoneId, ZonedDateTime, or other standard APIs that are officially supported.
Regards,
Eduardo
Offline
Pages: 1