Java не извлекает военные файлы и выдает исключение при развертывании на Windows Tomcat - PullRequest
0 голосов
/ 31 августа 2018

Я развернул сборку .war-файла на centos с помощью eclipse, а затем развернул его на tomcat 8.5 на centos (Linux). Это работает с этим. Но когда я развернул тот же «.war» или собрал новый «.war» файл с eclipse на windows, он не работает на Tomcat8.5 и выдает исключение BeansInCreation. Наличие одинаковых Java1.7 и Tomcat8.5 версии windows7. Сборка также работала на Windows в предыдущей версии (до обновления) и в последнем коде ничего не сделано.

Вот логи с localhost:

Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name '': Bean with name '' has been injected into other beans ['','',''] in its raw version as part of a circular reference, but has eventually been wrapped (for example as part of auto-proxy creation). This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:485)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:251)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:248)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:170)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:268)
... 98 more

Я думаю, что проблема может быть из-за "большого пути к файлу", так как Linux поддерживает больший путь к файлу, чем windows. Я изменился в regedit также для поддержки, но это не должно было измениться.

1 Ответ

0 голосов
/ 31 августа 2018

Если это работает в Linux, но не в Windows, я предполагаю, что существует проблема загрузки классов (порядок классов) во время развертывания вашей войны. Я бы порекомендовал проверить каталог / lib внутри вашего .war-файла.

Может быть, он содержит разные версии из одной и той же банки.

Отредактировано:

Вы можете отслеживать загрузку класса tomcat (или любого Java-приложения) в Linux и Windows. Для этого вам нужно запустить его с помощью специального параметра vm (-verbose: class). посмотрите здесь: Загрузка подробного Java-класса

...