Error al implementar Grails 2.0.4 en el servidor Glassfish 3.1.2

Estoy usando el complemento Spring Security Core 1.2.7.3 y recibo este error cuando intento implementar:

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 

La aplicación funciona bien cuando la ejecuto desde netbeans, pero cuando intento implementarla, aparece el error. He intentado limpiar y descomentar el 'mysql:mysql-connector-java:5.1.16' código en las dependencias en el archivo BuildConfig.groovy. Estoy usando un controlador Oracle jdbc que instalé dentro de mi carpeta /lib.

Supongo que esto tiene algo que ver con que no se encuentre el controlador Oracle jdbc.

actualización: he agregado mi cierre de producción a continuación

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"
        }
    }
}

preguntado el 12 de junio de 12 a las 17:06

1 Respuestas

Revise tu DataSource.groovy, lo más probable es que haya algo mal en tu production cierre. Cuando ejecuta NetBeans, probablemente esté utilizando el entorno de desarrollo, pero cuando construye una guerra, Grails utiliza el entorno de producción. Podrías intentar configurar el -Dgrails.env=production marca dentro del IDE para ver si te encuentras con el mismo problema. Si funciona, sabrá que es un problema con Glassfish; si falla, sabrá que es un problema con la configuración de su entorno.

Edit:

Intente agregar esto a su cierre de producción:

driverClassName = "oracle.jdbc.driver.OracleDriver"
dialect = "org.hibernate.dialect.Oracle10gDialect"

O cualquier dialecto que sea apropiado para su versión de Oracle.

Respondido el 12 de junio de 12 a las 20:06

Ok, hice lo que dijiste y obtuve un error al configurar el -Dgrails.env=production flag dentro del IDE. He editado mi publicación original para incluir el cierre de producción. ¿Hay algo en el cierre que pueda ver que podría estar causando el problema? - Universitas

Intenté agregarlos y todavía está roto. ¿Quizás es más profundo que solo el archivo Datasource.groovy? - Universitas

Acabo de comentar la sección Propiedades{} y traté de ejecutarla; parecía funcionar bien en modo de producción una vez que hice esto. No entiendo qué está haciendo el cierre de propiedades, pero supongo que esto es para H2 db y no pertenece a Oracle jdbc. Esta parece ser la causa del error. ¿Qué debo tener para las propiedades de Oracle db? - Universitas

Podría ser su SQL de validación. Eso fallaría en Oracle, intente select 1 from dual en lugar de solo select 1 - profusión

select 1 from dual arregló el problema Este es el primer lanzamiento de mi aplicación y la primera vez que trato con Oracle. Muchas gracias por ayudarme a aislar mi problema. ¡Realmente lo aprecio! - Universitas

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.