как исправить эту ошибку? ошибка создания bean-компонента с именем «proviceMasterController»: не удалось выполнить инъекцию автоуведомленных зависимостей; [Дубликат]

var myArray = [
    {field: 'id', operator: 'eq', value: id}, 
    {field: 'cStatus', operator: 'eq', value: cStatus}, 
    {field: 'money', operator: 'eq', value: money}
];
console.log(myArray.length); //3
myArray = $.grep(myArray, function(element, index){return element.field == "money"}, true);
console.log(myArray.length); //2

Элемент - это объект в массиве. Третий параметр true означает, что будет возвращен массив элементов, который не выполняет вашу логику функции, false означает, что будет возвращен массив элементов, который не выполняет вашу функциональную логику.

6
задан Pragati Singh 27 February 2018 в 10:36
поделиться

3 ответа

Вам нужно добавить зависимость JAXB (как это больше не предоставляется по умолчанию в Java 9), и вам нужно использовать Spring Boot 2. Обратите внимание, что если вы используете Java 10 (и, возможно, следующие версии), у вас будет точно такая же проблема, как удаление зависимостей JAXB, было сделано не только для версии Java 9.


Вики-страница Spring Boot о Java 9 перечисляет все, что вам нужно знать для запуска Приложения Spring Boot на Java 9.

Требования к загрузке Spring Boot

Spring Boot 1 не поддерживает его (и не планируется). Spring Boot 2 поддерживает его.

Spring Boot 2 - первая версия поддержки Java 9 (также поддерживается Java 8). Если вы используете 1.5 и хотите использовать Java 9, вы должны обновить до 2.0, так как мы не планируем поддерживать Java 9 в Spring Boot 1.5.x.

Некоторые известные обходные пути

AspectJ

С Java 9, если вам нужно сплести классы из JDK, вам необходимо использовать AspectJ 1.9 (сейчас в RC). Это должно быть временным решением, поскольку Aspect 1.9 GA находится за углом, и Spring Boot обновится до него. Spring AOP должен работать нормально в большинстве случаев с AspectJ 1.8 (по умолчанию в моментальных снимках Spring Boot).

JAXB

При обновлении вы можете столкнуться с следующим :

java.lang.NoClassDefFoundError: javax / xml / bind / JAXBException

Для спящего режима обычно требуется JAXB, который больше не предоставляется по умолчанию. Вам нужно либо добавить зависимость к вашему проекту:

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
 </dependency>

Тестирование

В последней версии maven-surefire-plugin (2.20.1) была введена регрессия, когда выполняемые тесты на Java 9. Вы можете либо понизить до 2.20.0, либо явно добавить один модуль, чтобы предотвратить его включение java.se.ee:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <argLine>--add-modules java.base</argLine>
    </configuration>
</plugin>

Некоторые известные ограничения

Эти библиотеки еще не имеют полной поддержки Java 9: ​​

  • Apache Cassandra, см. # 10453
  • JSP TLD со встроенным Tomcat, если он не запущен как упакованная война, см. # 10456

Пожалуйста, не стесняйтесь редактировать этот пост, если происходят изменения совместимости Java 9 с Spring Boot.

16
ответ дан davidxxx 17 August 2018 в 12:26
поделиться

Добавлена ​​ниже зависимость и разрешена проблема

<dependency>
    <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
    <version>2.3.0</version>
 </dependency>
1
ответ дан Lokesh 17 August 2018 в 12:26
поделиться
0
ответ дан Surimani Santhosh 6 September 2018 в 09:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: