Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

java.lang.reflect.InaccessibleObjectException

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
1 resposta
solução!

Oie Leonardo, tudo bem contigo?

Perdão pela demora!

Você está fazendo uso do xStream disponibilizado no curso? Se sim, você deve usar a mesma versão do Java que o instrutor que é a 10, acredito que as versões 8 e 9 também funcionam.

Caso você esteja usando uma versão do Java muito superior, você terá que baixar a versão mais nova nesse link aqui.

Veja se funciona!

Se tiver qualquer problema estarei por aqui :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software