2015-04-23 19 views
0

當我在開發模式下運行我的grails應用程序時,一切正常。但是,當我創建一個war文件並將其部署到web服務器時,出現以下錯誤?爲什麼jdbc驅動程序在戰爭中遺漏了一些在grails中創建的war文件?

[http-bio-8080-exec-20] ERROR pool.ConnectionPool - Unable to create initial connections of pool. 
java.sql.SQLException: oracle.jdbc.driver.OracleDriver 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:254) 
     at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486) 
     at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:144) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) 
     at org.apache.tomcat.jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127) 
     at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.getTargetConnection(LazyConnectionDataSourceProxy.java:403) 
     at org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy$LazyConnectionInvocationHandler.invoke(LazyConnectionDataSourceProxy.java:376) 
     at $Proxy66.getMetaData(Unknown Source) 

JDBC驅動程序ojdbc6.jar當我打開戰爭檔案時,文件丟失。我以前的工作部署在war歸檔lib目錄中有jar文件。可能是什麼原因?我使用grails版本2.4.4。

這裏是BuildConfig.grrovy

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0) 
//grails.project.class.dir = "target/classes" 
//grails.project.test.class.dir = "target/test-classes" 
//grails.project.test.reports.dir = "target/test-reports" 
//grails.project.work.dir = "target/work" 
grails.project.target.level = 1.6 
grails.project.source.level = 1.6 
//grails.project.war.file = "target/${appName}-${appVersion}.war" 

//Start company specific 
//set plugin directory (needed for having plugins in perforce) 
grails.project.plugins.dir="./plugins" 
grails.project.class.dir = "work/classes" 
grails.project.test.class.dir = "work/test-classes" 
grails.project.test.reports.dir = "work/test-reports" 
//set the grails work dir (contains proxy configuration file) 
grails.project.work.dir="./work" 
//End company specific 

grails.project.fork = [ 
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required 
    // compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 

    // configure settings for the test-app JVM, uses the daemon by default 
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true], 
    // configure settings for the run-app JVM 
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    // configure settings for the run-war JVM 
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false], 
    // configure settings for the Console UI JVM 
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256] 
] 

grails.project.dependency.resolver = "ivy" // or maven 
grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // specify dependency exclusions here; for example, uncomment this to disable ehcache: 
     // excludes 'ehcache' 
    } 
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    checksums true // Whether to verify checksums on resolve 
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility 

    repositories { 
     inherits true // Whether to inherit repository definitions from plugins 

     grailsPlugins() 
     grailsHome() 
     mavenLocal() 
     grailsCentral() 
     mavenCentral() 
     // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories 
     //mavenRepo "http://repository.codehaus.org" 
     //mavenRepo "http://download.java.net/maven/2/" 
     //mavenRepo "http://repository.jboss.com/maven2/" 
    } 

    dependencies { 
     // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. 
     // runtime 'mysql:mysql-connector-java:5.1.29' 
     // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41' 
     test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4" 
    } 

    plugins { 
     // plugins for the build system only 
     build ":tomcat:7.0.55" 

     // plugins for the compile step 
     compile ":scaffolding:2.1.2" 
     compile ':cache:1.1.8' 
     compile ":asset-pipeline:2.1.5" 
     compile ":quartz2:2.1.6.2" 
     compile ":mail:1.0.7" 
     compile ":filterpane:2.4.7" 

     // plugins needed at runtime but not for compilation 
     runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18" 
//  runtime ":database-migration:1.4.0" 
     runtime ":jquery:1.11.1" 

     // Uncomment these to enable additional asset-pipeline capabilities 
     //compile ":sass-asset-pipeline:1.9.0" 
     //compile ":less-asset-pipeline:1.10.0" 
     //compile ":coffee-asset-pipeline:1.8.0" 
     //compile ":handlebars-asset-pipeline:1.3.0.3" 
    } 
} 
+0

你的'BuildConfig.groovy'看起來是什麼樣的,你是如何創建這場戰爭的? – doelleri

+0

包含'BuildConfig.groovy'代碼 – Syam

回答

1

在buildconfig.groovy試試這個,讓我知道。我已經完善了我的buildconfig.groovy,用於我在Grails下生產的許多項目,這是Grails 2.4之前的一個問題,如果我沒有使用配置,我告訴你,戰爭不包含jar。我想還有其他的解決方案,但我從我在依賴關係塊中告訴你的存儲庫中獲取它。我使用jdbc41 for postgreSQL,但對於ojdb,我發現你可以用'cn.guoyukun.jdbc:oracle-ojdbc6:jar:11.2.0.3.0'代替。無論如何,你可以在mvnrepository查詢最適合你的版本。

repositories { 
    inherits true // Whether to inherit repository definitions from plugins 

    grailsPlugins() 
    grailsHome() 
    mavenLocal() 
    grailsCentral() 
    mavenCentral() 
    // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories 
    //mavenRepo "http://repository.codehaus.org" 
    //mavenRepo "http://download.java.net/maven/2/" 
    //mavenRepo "http://repository.jboss.com/maven2/" 
} 

dependencies { 
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. 
    // runtime 'mysql:mysql-connector-java:5.1.29' 
    runtime 'org.postgresql:postgresql:9.3-1101-jdbc41' 
    test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4" 
} 

希望我幫了忙!

+0

是的,將它添加到依賴項來完成這項工作。但是,可能是因爲我的公司政策,它無法從存儲庫中獲取它。 – Syam

+1

[https://maven-repository.com/artifact/cn.guoyukun.jdbc/oracle-ojdbc6/11.2.0.3.0]。每次在戰爭創建之前解決問題的時候都應該使用'clean'和'compile --refresh-dependencies'。 – Syam

相關問題