【发布时间】:2012-02-05 09:13:48
【问题描述】:
我使用 Grails (V2.0.0.RC1) 编写了两个小小的 hello world 应用程序,我想使用 Glassfish (v3.1) 部署它们。
如果我在 Glassfish 上单独部署其中一个应用程序,则该应用程序运行良好,我可以通过 http://t1-0.1 或 http://t2-0.1 访问它。但是,如果我部署其中一个应用程序,然后部署另一个应用程序(以便访问我的网站的人都可以使用这两个应用程序),那么第二个部署命令会给我以下错误消息:
c:>asadmin 部署 t2-0.1.war
远程失败:部署期间发生错误:出现异常 加载应用程序:java.lang.IllegalStateException: ContainerBase.addChild:开始:org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException:错误 创建名为“transactionManagerPostProcessor”的bean: bean初始化失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“transactionManager”的bean:无法解析引用 在设置 bean 属性 'sessionFactory' 时 bean 'sessionFactory'; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“sessionFactory”的bean:无法解析对 bean 'hibernateProperties' 同时设置 bean 属性 '休眠属性';嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误创建 名称为“hibernateProperties”的 bean:无法解析对 bean'dialectDetector'同时设置bean属性'properties' 键[hibernate.dialect];嵌套异常是 org.springframework.beans.factory.BeanCreationException:错误 创建名为“dialectDetector”的bean:调用init 方法失败;嵌套异常是 org.springframework.jdbc.support.MetaDataAccessException:出错时 提取数据库元数据;嵌套异常是 org.apache.commons.dbcp.SQLNestedException:无法创建 PoolableConnectionFactory(数据库可能已经在使用中:“被锁定 另一个进程”。可能的解决方案:关闭所有其他连接; 使用服务器模式; SQL 声明:空/1349c415392c6dc06a3e7086cd1bb075c7881fc0650 [90020-147])。有关详细信息,请参阅 server.log。
这里发生了什么?我认为 Grails 及其对 Hibernate 的使用有一些特殊之处(否则 Glassfish 不会抱怨允许我拥有两个可以一起工作的应用程序)。但也许我误读了错误信息?有人有什么建议吗?
【问题讨论】:
-
您能否发布您的 glassfish 持久性提供程序配置?通常,应用程序不直接通过 glassfish api 访问数据库 - 我猜问题出在此处。您的 Grails DB 配置也会很有帮助。