Почему JAX-B генерирует плохой код? (Я не могу получить это как мой титул) - PullRequest
0 голосов
/ 31 января 2020

Я только что сгенерировал код из JAXB 2.3.0, но при работе с опцией java --illegal-access = deny я получаю ошибку времени выполнения

NoSuchMethodException: sun.mis c .Unsafe.defineClass.

Я прочитал много статей и ответов по этой теме c, но все они были бесполезны для моей ситуации, поскольку ни одна из них не относится к JAXB. Трассировка стека показывает, что источником является строка моего кода, которая говорит:

context = JAXBContext.newInstance(TopologyComplexType.class);

TopologyComplexType - это класс root из схемы XML, которую использует JAXB. Я могу изменить свой вариант отказа от разрешения, но это просто скрывает проблему под ковром (чтобы раскрыться позже). Эта проблема возникла после «обновления» с Java 8 до Java 13 и после потери всех этих Java пакетов.

На данный момент у меня исправлены большинство проблем, но это это последняя давняя проблема, которую мне не удалось решить. Я знаю, что Unsafe.defineClass был удален из Java 11, и в коде, сгенерированном JAXB, не существует строки defineClass, поэтому я действительно не знаю, откуда это происходит.

Есть идеи?

...