Tomcat зависает при запуске веб-приложения - PullRequest
5 голосов
/ 29 февраля 2012

Мой веб-проект работал отлично, в него входят: spring3 и hibernate3 .После переименования некоторых пакетов в eclipse с помощью рефакторинг eclipse , tomcat больше не может запускаться.Он висит на этих журналах ниже:

......
......
......

2012-02-29 08:57:04,552 INFO [org.springframework.orm.hibernate3.LocalSessionFactoryBean] [buildSessionFactory] - <Building new Hibernate SessionFactory>
2012-02-29 08:57:04,567 INFO [org.hibernate.connection.ConnectionProviderFactory] [newConnectionProvider] - <Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider>
2012-02-29 08:57:10,698 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <RDBMS: MySQL, version: 5.0.77>
2012-02-29 08:57:10,698 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.1.15 ( Revision: ${bzr.revision-id} )>
2012-02-29 08:57:10,729 INFO [org.hibernate.dialect.Dialect] [<init>] - <Using dialect: org.hibernate.dialect.MySQLDialect>
2012-02-29 08:57:10,745 INFO [org.hibernate.transaction.TransactionFactoryFactory] [buildTransactionFactory] - <Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory>
2012-02-29 08:57:10,745 INFO [org.hibernate.transaction.TransactionManagerLookupFactory] [getTransactionManagerLookup] - <No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Automatic flush during beforeCompletion(): disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Automatic session close at end of transaction: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <JDBC batch size: 15>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <JDBC batch updates for versioned data: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Scrollable result sets: enabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <JDBC3 getGeneratedKeys(): enabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Connection release mode: auto>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Maximum outer join fetch depth: 2>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Default batch fetch size: 1>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Generate SQL with comments: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Order SQL updates by primary key: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Order SQL inserts for batching: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [createQueryTranslatorFactory] - <Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory>
2012-02-29 08:57:10,745 INFO [org.hibernate.hql.ast.ASTQueryTranslatorFactory] [<init>] - <Using ASTQueryTranslatorFactory>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Query language substitutions: {}>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <JPA-QL strict compliance: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Second-level cache: enabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Query cache: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [createRegionFactory] - <Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Optimize cache for minimal puts: disabled>
2012-02-29 08:57:10,745 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Structured second-level cache entries: disabled>
2012-02-29 08:57:10,761 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Statistics: disabled>
2012-02-29 08:57:10,761 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Deleted entity synthetic identifier rollback: disabled>
2012-02-29 08:57:10,761 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Default entity-mode: pojo>
2012-02-29 08:57:10,761 INFO [org.hibernate.cfg.SettingsFactory] [buildSettings] - <Named query checking : enabled>
2012-02-29 08:57:10,792 INFO [org.hibernate.impl.SessionFactoryImpl] [<init>] - <building session factory>
2012-02-29 08:57:11,244 INFO [org.hibernate.impl.SessionFactoryObjectFactory] [addInstance] - <Not binding factory to JNDI, no JNDI name configured>
2012-02-29 08:57:11,307 INFO [org.springframework.orm.hibernate3.HibernateTransactionManager] [afterPropertiesSet] - <Using DataSource [org.apache.commons.dbcp.BasicDataSource@1aac07d] of Hibernate SessionFactory for HibernateTransactionManager>

Он висит здесь, и когда tomcat's *1020* «время ожидания запуска» достигает tomcat останавливается.Я увеличил тайм-аут до 100 секунд, но это было бесполезно, когда приложение все еще зависало в течение самых длительных периодов времени!Самое странное, что ошибки нет, она просто зависает.Я много раз пытался очистить / удалить сервер и очистить / собрать проект, но безрезультатно.

РЕДАКТИРОВАТЬ:

Дорефакторинг журнала продолжился следующим образом:

2012-02-29 07:52:39,822 INFO [org.springframework.ws.soap.saaj.SaajSoapMessageFactory] [afterPropertiesSet] - <Creating SAAJ 1.3 MessageFactory with SOAP 1.1 Protocol>
2012-02-29 07:52:39,853 INFO [org.springframework.oxm.jaxb.Jaxb2Marshaller] [createJaxbContextFromContextPath] - <Creating JAXBContext with context path [aheeva.webService.oxm]>
2012-02-29 07:52:40,571 INFO [org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping] [registerHandler] - <Mapped URL path [
.......
.......
.......

РЕДАКТИРОВАТЬ:

Я получил дамп потока со следующим выводом:

"main" prio=5 tid=0x001f9dc8 nid=0xf8c runnable [0x000bf000..0x000cfc00]
        at java.lang.String.equals(String.java:858)
        at java.util.HashMap.eq(HashMap.java:277)
        at java.util.HashMap.getEntry(HashMap.java:363)
        at java.util.LinkedHashMap.get(LinkedHashMap.java:273)
        at org.springframework.beans.CachedIntrospectionResults.getPropertyDescr
iptor(CachedIntrospectionResults.java:275)
        at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorIntern
al(BeanWrapperImpl.java:335)
        at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrap
perImpl.java:407)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1327)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.populateBean(AbstractAutowireCapableBeanFactory.java:1086)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.createBean(AbstractAutowireCapableBeanFactory.java:456)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb
ject(AbstractBeanFactory.java:291)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr
y.getSingleton(DefaultSingletonBeanRegistry.java:222)
        - locked <0x24682be0> (a java.util.concurrent.ConcurrentHashMap)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBe
an(AbstractBeanFactory.java:288)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getType
ForFactoryBean(AbstractBeanFactory.java:1343)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.getTypeForFactoryBean(AbstractAutowireCapableBeanFactory.java:678)
        at org.springframework.beans.factory.support.AbstractBeanFactory.isTypeM
atch(AbstractBeanFactory.java:507)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
getBeanNamesForType(DefaultListableBeanFactory.java:317)
        at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIn
cludingAncestors(BeanFactoryUtils.java:185)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
findAutowireCandidates(DefaultListableBeanFactory.java:829)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
doResolveDependency(DefaultListableBeanFactory.java:786)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.
resolveDependency(DefaultListableBeanFactory.java:703)
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanP
ostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.j
ava:474)
.......
.......
.......

Я могу заключить следующее:

Это всегда одно и то же spring hashmap в режиме singleton .получить бин и не может найти его по этой причине поток заблокирован ... очень, очень странно!не должно ли быть throw для исключение или тайм-аут?странная весна архитектура!

Ответы [ 2 ]

7 голосов
/ 01 марта 2012

ОК, я решил это: рефакторинг затмения не изменился Пружина <context:component-scan base-package="package_name" /> блоков, по этой причине spring не удалось найти какие-либо проводные компоненты для обработки.Я нашел это, добавив Spring Tools -> add java nature и проверив на вкладке Spring Explorer , что context:component-scan блоки были пусты.

Благодаря AlexR, mindandmedia, NIVESH SENGAR,Xorty и Donal Fellows за вашу поддержку и особую благодарность nwinkler за конструктивные инструкции!

2 голосов
/ 29 февраля 2012

Можете ли вы попробовать следующее:

  • Включить ведение журнала DEBUG - это поможет вам лучше понять, что делает сервер.
  • Проверьте базу данных на наличие открытых соединений, чтобы увидетьустановлено ли соединение.
  • Создайте дамп потока, когда процесс находится в этом состоянии.См. здесь или здесь для получения подробной информации о том, как получить дамп потока.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...