将Grails 2.0.4部署到Glassfish 3.1.2服务器时出错

将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

我使用的是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.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
Yes
select 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
Yes
select 1 from dual
修复此问题。这是我第一次发布应用程序,也是我第一次与Oracle打交道。非常感谢您帮助我解决我的问题。我真的很感激!