将Grails 2.0.4部署到Glassfish 3.1.2服务器时出错
我使用的是Spring Security Core 1.2.7.3插件,在尝试部署时出现以下错误:将Grails 2.0.4部署到Glassfish 3.1.2服务器时出错,grails,spring-security,glassfish,Grails,Spring Security,Glassfish,我使用的是Spring Security Core 1.2.7.3插件,在尝试部署时出现以下错误: Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans
Error occurred during deployment: Exception while loading the app :
java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'transactionManagerPostProcessor': Initialization of bean failed; nested exception
is org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while
setting bean property 'sessionFactory'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting
bean property 'hibernateProperties'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while
setting
bean property 'propertie .... msg.seeServerLog
当我从netbeans内部运行该应用程序时,它工作正常,但是当我尝试部署它时,我得到了错误。我已经尝试过清理BuildConfig.groovy文件中依赖项中的'mysql:mysql connector java:5.1.16'
代码,并取消其注释。我使用的是安装在/lib文件夹中的Oracle jdbc驱动程序
我猜这与找不到Oracle jdbc驱动程序有关
更新:我已经在下面添加了我的生产结束
production {
dataSource {
url = "jdbc:oracle:thin:@MYSERVERNAME.com:xxxx:xxxxxxx"
pooled = true
properties {
maxActive = -1
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
testOnBorrow=true
testWhileIdle=true
testOnReturn=true
validationQuery="SELECT 1"
}
}
}
检查您的
数据源.groovy
,很可能是您的产品中出现了错误。当您在NetBeans内部运行时,您可能使用的是开发环境,但当您构建war时,Grails使用的是生产环境。您可以尝试在IDE中设置-Dgrails.env=production
标志,以查看是否遇到相同的问题。如果它有效,您就知道这是Glassfish的问题;如果它失败,您就知道这是您的环境配置的问题
编辑:
尝试将此项添加到生产结束中:
driverClassName = "oracle.jdbc.driver.OracleDriver"
dialect = "org.hibernate.dialect.Oracle10gDialect"
或者任何适合您的Oracle版本的方言。检查您的数据源。groovy
,您的产品
闭包很可能有问题。当您在NetBeans内部运行时,您可能使用的是开发环境,但当您构建war时,Grails使用的是生产环境。您可以尝试在IDE中设置-Dgrails.env=production
标志,以查看是否遇到相同的问题。如果它有效,您就知道这是Glassfish的问题;如果它失败,您就知道这是您的环境配置的问题
编辑:
尝试将此项添加到生产结束中:
driverClassName = "oracle.jdbc.driver.OracleDriver"
dialect = "org.hibernate.dialect.Oracle10gDialect"
或者任何适合您的Oracle版本的方言。好的,我按照您说的做了,在IDE中设置-Dgrails.env=production标志时出错。我已经编辑了我的原始帖子,包括制作结束。在闭包中是否有任何您可以看到的可能导致问题的东西?尝试添加这些东西,但仍然存在问题。也许它比Datasource.groovy文件更深?我刚刚注释掉了Properties{}部分并尝试运行它-一旦我这样做,它似乎在生产模式下运行。我不明白properties闭包在做什么,但我假设这是针对H2 db的,而不是关于Oracle jdbc的?这似乎是错误的原因。oracle db的属性应该是什么?它可能是您的验证SQL。在Oracle中,这将失败,请尝试select 1 from dual
,而不只是select 1
Yesselect 1 from dual
修复此问题。这是我第一次发布应用程序,也是我第一次与Oracle打交道。非常感谢您帮助我解决我的问题。我真的很感激!好的,我照你说的做了,在IDE中设置-Dgrails.env=production标志时出错了。我已经编辑了我的原始帖子,包括制作结束。在闭包中是否有任何您可以看到的可能导致问题的东西?尝试添加这些东西,但仍然存在问题。也许它比Datasource.groovy文件更深?我刚刚注释掉了Properties{}部分并尝试运行它-一旦我这样做,它似乎在生产模式下运行。我不明白properties闭包在做什么,但我假设这是针对H2 db的,而不是关于Oracle jdbc的?这似乎是错误的原因。oracle db的属性应该是什么?它可能是您的验证SQL。在Oracle中,这将失败,请尝试select 1 from dual
,而不只是select 1
Yesselect 1 from dual
修复此问题。这是我第一次发布应用程序,也是我第一次与Oracle打交道。非常感谢您帮助我解决我的问题。我真的很感激!