Olá, estava fazendo o curso de Java Servlet me deparei com esse erro. Aparentemente ele acontece quando instancio a classe XStream. Para testar, eu criei um novo projeto e importei a API, depois criei uma classe com apenas um código, dentro de um método main:
XStream x = new XStream();
, e deu erro. Alguém sabe resolver isso? Dentro do main a mensagem apareceu um pouco diferente de quando executo no servidor, este é o rastro dele:
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.thoughtworks.xstream.XStream.setupConverters(XStream.java:989)
at com.thoughtworks.xstream.XStream.<init>(XStream.java:592)
at com.thoughtworks.xstream.XStream.<init>(XStream.java:514)
at com.thoughtworks.xstream.XStream.<init>(XStream.java:483)
at com.thoughtworks.xstream.XStream.<init>(XStream.java:429)
at com.thoughtworks.xstream.XStream.<init>(XStream.java:368)
at teste.main(teste.java:10)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Comparator java.util.TreeMap.comparator accessible: module java.base does not "opens java.util" to unnamed module @3c407114
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:357)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:177)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:171)
at com.thoughtworks.xstream.core.util.Fields.locate(Fields.java:40)
at com.thoughtworks.xstream.converters.collections.TreeMapConverter.<clinit>(TreeMapConverter.java:50)
... 7 more
A diferença é que no servidor a frase aparece assim:
Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @3cf1c788