- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的web 项目 运行良好,它包括: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 的“启动超时”达到 tomcat 时停止。我将超时时间增加到 100 秒,但没用,app 仍然挂起时间最长!最奇怪的是没有任何错误,它只是挂起。我尝试了很多次清理/删除服务器和清理/构建项目,但没有结果。
编辑:
在重构日志之前继续如下所示:
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 试图获取一个 bean 但由于线程被锁定而无法找到它 ...非常非常奇怪!难道不能为异常 或超时设置throw 吗?奇怪的 Spring 架构!
最佳答案
好的,我解决了这个问题:eclipse 重构 没有改变 Spring <context:component-scan base-package="package_name" />
block ,因此 spring 无法找到任何有线组件来处理。我通过添加 Spring Tools -> add java nature
找到了这个并检查 context:component-scan
的 Spring Explorer 选项卡 block 是空的。
感谢 AlexR、mindandmedia、NIVESH SENGAR、Xorty 和 Donal Fellows 的支持,特别感谢 nwinkler 的建设性指导!
关于java - Tomcat 在 webapp 启动期间挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9496943/
我希望在某些环境中使用用户名和密码保护某个角色,但在其他环境中甚至不需要提示。如果我在 tomcat web.xml 中有一个 auth-constraint,我可以创建一个具有“匿名”访问权限的角色
我正在使用 Tomcat jmxproxy 和状态来监视 Web 应用程序,但是 jmxproxy 页面中有很多无用的信息,并且其中没有任何信息,例如事件连接数。有谁知道如何过滤 jmxproxy 页
是否可以通过执行 JSP 来重启 Tomcat6? 这是因为我想通过使用网络服务器远程部署应用程序的更改。 部署脚本是用 bash 编写的,它从 svn 中 check out 最新版本,然后将其打包
我有一个包含 2 个子项目(后端和 ui)的 gradle 项目。 Ui由gradle tomcatRunWar完美启动.后端有我们在生产地点的配置描述符/conf/Catalina/localhos
发现 XAMPP 控件认为 tomcat 正在运行但无法停止它的问题。 在catalina下的tomcat logs目录下可以找到如下错误 “严重:无法联系 localhost:8005。Tomcat
PuppetLabs 在 PuppetForge 上有一个模块,用于部署 Tomcat 及其配置。 https://forge.puppet.com/puppetlabs/tomcat Tomcat
我有一个部署到 Tomcat 实例中的 Web 应用程序。我希望能够将 tomcat 配置为在 Tomcat 本身启动时不自动启动该应用程序。但是,我确实希望启动 Tomcat 管理器,以便我可以根据
操作系统:windows XP。 我已经安装了 Tomcat 7.0.25,文件夹“manager”位于 webapps 文件夹中。 我已阅读此处的文档:http://tomcat.apache.or
我们在 server.xml 文件中启用了以下访问日志模式 pattern="%h %H %l %u %t "%r" %s %b location: %{location}o"。 有人可以帮助理解模式
我最近开始使用 tomcat,我有一个关于 Tomcat 请求路由/映射的查询。 假设我在 tomcat 服务器中部署了四个应用程序 A、B、C 和 D,当有请求到来时,tomcat 如何知道要调用哪
我在我的计算机上使用 Tomcat,它可以通过端口 8080 访问。我想要的是我应该能够使用我的计算机的 IP 地址访问我的 Tomcat 服务器页面。我以前读过很多主题,但找不到一个可以帮助我的主题
我有一个 tomcat 7 服务器和一个 postgreSQL 9.0 数据库。我用它来为地理网络元数据编辑器设置开发环境。一切都是根据 geonetwork 网站教程设置的。我在将服务器与数据库连接
我的服务器有 物理 ip 和 虚拟 ip 由网络管理员设置。在我安装的服务器内部 Apache tomcat 7.0.29并创建一个网络应用程序。当我运行 wget http://:8080/xxx或
我有多个应用程序在不同的端口上运行(tomcat 实例) 都有相同的CATALINA_HOME 目前我必须在所有实例中部署和安装psi 探针,并在不同的窗口中分别监控每个端口。 我如何在一个单一的探测
based on this question 我尝试将 Tomcat 控制台输出重定向到一个文本文件,它对我的 Web 应用程序工作正常,但问题是,每次 Tomcat 启动时它都会被覆盖。我需要创
我需要阐明我的问题。问题是:有什么方法可以影响 Tomcat 为特定部署的应用程序分配多少堆内存?更多详细信息 - 我如何为已部署的应用程序设置特定的 Java 选项(考虑我想为每个应用程序设置特殊的
应用服务器内部的类加载机制是开发人员常见的困惑来源;这就是为什么我想问一个关于 tomcat 7 服务器中这个机制的问题:我有一个网络应用程序 sample.war,它依赖于 jgroups 库, 放
尝试将嵌入式 Tomcat 5 迁移到嵌入式 Tomcat 7。在启动过程中获取 NPE。 我扩展了 Embedded 类并按照正确的顺序执行所有建议的初始化。 NPE 发生在这里: Caused b
我可以使用随附的 start.sh 文件启动 tomcat,但是是否有任何参数可以用来执行以下操作: 在指定的根目录启动 Tomcat 服务 强制 Tomcat 在浏览器中拉出指定的主页 谢谢 最佳答
我在两台 diff 机器 tomcat 服务器上做一个简单的集群配置。每次我启动 tomcat 时,我都会收到一个错误,就像集群组中没有事件成员一样。我正在附加集群配置
我是一名优秀的程序员,十分优秀!