部署Grails应用程序时出错 – 初学者

我在部署Grails应用程序时遇到问题。 一切都在本地测试环境中工作。

错误

[localhost-startStop-1] ERROR context.GrailsContextLoader – 初始化应用程序时出错:创建名为’transactionManagerPostProcessor’的bean时出错:bean的初始化失败; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’transactionManager’的bean时出错:在设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’sessionFactory’的bean时出错:在设置bean属性’hibernateProperties’时无法解析对bean’hibernateProperties’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’hibernateProperties’的bean时出错:在使用key [hibernate.dialect]设置bean属性’properties’时,无法解析对bean’dialectDetector’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’dialectDetector’的bean时出错:init方法的调用失败; 嵌套exception是org.springframework.jdbc.support.MetaDataAccessException:提取DatabaseMetaData时出错; 嵌套exception是org.apache.commons.dbcp.SQLNestedException:无法创建PoolableConnectionFactory(IO例外:“java.io.FileNotFoundException:/var/lib/tomcat7/prodDb.lock.db(Permission denied)”;“/ var / lib /tomcat7/prodDb.lock.db“[90031-164])org.springframework.beans.factory.BeanCreationException:创建名为’transactionManagerPostProcessor’的bean时出错:bean的初始化失败; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’transactionManager’的bean时出错:在设置bean属性’sessionFactory’时无法解析对bean’sessionFactory’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’sessionFactory’的bean时出错:在设置bean属性’hibernateProperties’时无法解析对bean’hibernateProperties’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’hibernateProperties’的bean时出错:在使用key [hibernate.dialect]设置bean属性’properties’时,无法解析对bean’dialectDetector’的引用; 嵌套exception是org.springframework.beans.factory.BeanCreationException:创建名为’dialectDetector’的bean时出错:init方法的调用失败; 嵌套exception是org.springframework.jdbc.support.MetaDataAccessException:提取DatabaseMetaData时出错; 嵌套exception是org.apache.commons.dbcp.SQLNestedException:无法创建PoolableConnectionFactory(IO例外:“java.io.FileNotFoundException:/var/lib/tomcat7/prodDb.lock.db(Permission denied)”;“/ var / lib /tomcat7/prodDb.lock.db“[90031-164])at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)at java.util.concurrent.FutureTask.run(FutureTask.java:262 )java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java: 744)

构建配置文件:

// locations to search for config files that get merged into the main config; // config files can be ConfigSlurper scripts, Java properties files, or classes // in the classpath in ConfigSlurper format // grails.config.locations = [ "classpath:${appName}-config.properties", // "classpath:${appName}-config.groovy", // "file:${userHome}/.grails/${appName}-config.properties", // "file:${userHome}/.grails/${appName}-config.groovy"] // if (System.properties["${appName}.config.location"]) { // grails.config.locations << "file:" + System.properties["${appName}.config.location"] // } grails.project.groupId = appName // change this to alter the default package name and Maven publishing destination grails.mime.file.extensions = true // enables the parsing of file extensions from URLs into the request format grails.mime.use.accept.header = false grails.mime.types = [ all: '*/*', atom: 'application/atom+xml', css: 'text/css', csv: 'text/csv', form: 'application/x-www-form-urlencoded', html: ['text/html','application/xhtml+xml'], js: 'text/javascript', json: ['application/json', 'text/json'], multipartForm: 'multipart/form-data', rss: 'application/rss+xml', text: 'text/plain', xml: ['text/xml', 'application/xml'] ] // URL Mapping Cache Max Size, defaults to 5000 //grails.urlmapping.cache.maxsize = 1000 // What URL patterns should be processed by the resources plugin grails.resources.adhoc.patterns = ['/images/*', '/css/*', '/js/*', '/plugins/*'] // The default codec used to encode data with ${} grails.views.default.codec = "none" // none, html, base64 grails.views.gsp.encoding = "UTF-8" grails.converters.encoding = "UTF-8" // enable Sitemesh preprocessing of GSP pages grails.views.gsp.sitemesh.preprocess = true // scaffolding templates configuration grails.scaffolding.templates.domainSuffix = 'Instance' // Set to false to use the new Grails 1.2 JSONBuilder in the render method grails.json.legacy.builder = false // enabled native2ascii conversion of i18n properties files grails.enable.native2ascii = true // packages to include in Spring bean scanning grails.spring.bean.packages = [] // whether to disable processing of multi part requests grails.web.disable.multipart=false // request parameters to mask when logging exceptions grails.exceptionresolver.params.exclude = ['password'] // configure auto-caching of queries by default (if false you can cache individual queries with 'cache: true') grails.hibernate.cache.queries = false environments { development { grails.logging.jul.usebridge = true } production { grails.logging.jul.usebridge = true grails.serverURL = "http://100.117.40.30:8080/MyApp" } } // log4j configuration log4j = { // Example of changing the log pattern for the default console appender: // //appenders { // console name:'stdout', layout:pattern(conversionPattern: '%c{2} %m%n') //} error 'org.codehaus.groovy.grails.web.servlet', // controllers 'org.codehaus.groovy.grails.web.pages', // GSP 'org.codehaus.groovy.grails.web.sitemesh', // layouts 'org.codehaus.groovy.grails.web.mapping.filter', // URL mapping 'org.codehaus.groovy.grails.web.mapping', // URL mapping 'org.codehaus.groovy.grails.commons', // core / classloading 'org.codehaus.groovy.grails.plugins', // plugins 'org.codehaus.groovy.grails.orm.hibernate', // hibernate integration 'org.springframework', 'org.hibernate', 'net.sf.ehcache.hibernate' } 

UPDATE

DATASOURCE.GROVVY

 dataSource { pooled = true driverClassName = "org.h2.Driver" username = "sa" password = "" } hibernate { cache.use_second_level_cache = true cache.use_query_cache = false cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory' } // environment specific settings environments { development { dataSource { dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', '' url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000" } } test { dataSource { dbCreate = "update" url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000" } } production { dataSource { dbCreate = "update" url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000" pooled = true properties { maxActive = -1 minEvictableIdleTimeMillis=1800000 timeBetweenEvictionRunsMillis=1800000 numTestsPerEvictionRun=3 testOnBorrow=true testWhileIdle=true testOnReturn=true validationQuery="SELECT 1" } } } } 

删除DataSource.groovy文件并在执行grails clean后重建WAR,这将禁用基于默认文件的数据源

目前它正在尝试在文件系统上创建数据库但由于您没有权限而失败