Мне вручили кучу устаревшего кода, который должен быть обновлен. В настоящее время работает на JBoss 7.2; Необходимо запустить 8. Он построен на Java 8, поэтому он должен перейти к 11, что, в свою очередь, требует обновления компонентов Javax до компонентов Jakarta, где возникает проблема:
Тип jakarta.el.elexception не может быть разрешена. Это косвенно ссылается из требуемого типа jakarta.faces.application.application
Все в порядке, так что Eclipse не может видеть API, мне просто нужно бросить Jakarta.el-API в Web-inf/lib, и это должно быть в порядке, правда? Ну, я делаю это и: < /p>
Пакет jakarta.el доступен из более чем одного модуля :, Jakarta.el < /p>
< /p>
Поиск показывает очевидное дублирование в jboss Runtime: ... \ jakarta \ el \ api \ main \ jboss-el-api_5.0_spec-4.0.1.final-redhat-00001.jar < /p>
Общее решение, которое я видел,-это удалить избыточную зависимость. Но когда я захожу в модульные зависимости в Eclipse, я не вижу API, внесенного JBOSS; Только тот, который я бросил. Eclipse сообщает мне, что только системные модули могут быть удалены с помощью этого метода и что я должен удалить API с пути модуля. Это очевидно, но я попытался в надежде, что, поскольку Eclipse распознает дубликат, может быть, если я пойду и удалю API, который я бросил из зависимостей, он будет продолжать распознавать API, встроенный во время выполнения. Я также попытался удалить внедрение путем удаления его, и Eclipse просто возвращается к ошибке не может быть разрешена. /> В идеале я просто хочу, чтобы она использовала версию уже в среде выполнения JBoss, но я не вижу, как заставить ее сделать это. Eclipse говорит, что вообще не может найти Elexception, если есть только API JBoss и жалуется на дубликат, если я брошу в API Джакарты.
Подробнее здесь: https://stackoverflow.com/questions/797 ... going-from