Недавно я преобразовал проект Java eclipse в динамический веб-проект. Импортированные банки, перечисленные в обоих проектах до и после, одинаковы, но изменение в динамическом веб-проекте вызывает следующую ошибку компиляции:
W3C_XML_SCHEMA_NS_URI cannot be resolved or is not a field
который будет выбрасываться следующей строкой кода:
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Я исследовал эту ошибку и, похоже, ее выбрасывают конфликтующие версии javax.xml.XMLConstants
в разных баночках, но я сравнивал списки банок в обоих проектах, и они идентичны, поэтому Я думаю, что нужно измените порядок банок. Как это сделать?
Часть решения может логически включать выяснение, какие банки включают пакет с именем javax.xml.XMLConstants
. Поэтому я последовал за советом @DiogoSantana и использовал мастер "Тип" для получения результатов на следующем экране печати:
Затем я последовал совету DiogoSantana и побежал mvn dependency:tree
и получил следующие результаты:
Затем я сделал следующее изменение в pom.xml
:
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2.7</version>
<exclusions>
<exclusion>
<groupId>jsr173_api</groupId>
</exclusion>
</exclusions>
</dependency>
И затем я запустил mvn clean install
перед обновлением проекта eclipse и даже выполнил maven..update project
из eclipse, но ошибка остается.
Примечание: поиск строки infoset
в pom
не дал никаких результатов, поэтому я попробовал следующий более высокий уровень jar
.