2011-11-11 158 views
0

我正在嘗試使用Tomcat 6.0部署Grails應用程序。當我使用與Grails打包的db時,它工作正常。但是,當我使用PostgreSQL時,我得到一個狀態404錯誤。在Tomcat上部署Grails

日誌給我下面的:

Nov 12, 2011 7:44:40 AM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Apache Software Foundation\Tomcat 6.0\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files\TortoiseSVN\bin;;. 
Nov 12, 2011 7:44:41 AM org.apache.coyote.http11.Http11Protocol init 
INFO: Initializing Coyote HTTP/1.1 on http-8080 
Nov 12, 2011 7:44:41 AM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 2901 ms 
Nov 12, 2011 7:44:42 AM org.apache.catalina.core.StandardService start 
INFO: Starting service Catalina 
Nov 12, 2011 7:44:42 AM org.apache.catalina.core.StandardEngine start 
INFO: Starting Servlet Engine: Apache Tomcat/6.0.33 
Nov 12, 2011 7:44:42 AM org.apache.catalina.startup.HostConfig deployDescriptor 
INFO: Deploying configuration descriptor manager.xml 
Nov 12, 2011 7:44:42 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive HighPoint-0.1.war 
Nov 12, 2011 7:44:43 AM org.apache.catalina.core.StandardContext start 
SEVERE: Error listenerStart 
Nov 12, 2011 7:44:43 AM org.apache.catalina.core.StandardContext start 
SEVERE: Context [/HighPoint-0.1] startup failed due to previous errors 
Nov 12, 2011 7:44:43 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive Test-0.1.war 
Nov 12, 2011 7:45:00 AM org.apache.catalina.startup.HostConfig deployWAR 
INFO: Deploying web application archive Test2-0.1.war 
Nov 12, 2011 7:45:20 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
Nov 12, 2011 7:45:20 AM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory ROOT 
Nov 12, 2011 7:45:21 AM org.apache.coyote.http11.Http11Protocol start 
INFO: Starting Coyote HTTP/1.1 on http-8080 
Nov 12, 2011 7:45:21 AM org.apache.jk.common.ChannelSocket init 
INFO: JK: ajp13 listening on /0.0.0.0:8009 
Nov 12, 2011 7:45:21 AM org.apache.jk.server.JkMain start 
INFO: Jk running ID=0 time=0/63 config=null 
Nov 12, 2011 7:45:21 AM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 39476 ms 

任何意見將不勝感激。

如這裏要求的是datasource.config:

dataSource { 
     pooled = true 
     driverClassName = "org.postgresql.Driver" 
} 
hibernate { 
    cache.use_second_level_cache=true 
    cache.use_query_cache=true 
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' 
} 

environments { 
    development { 
     dataSource { 
      dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
      url = "jdbc:postgresql:Test" 
         username = "postgres" 
         password = "highpoint" 
     } 
    } 
    test { 
      dataSource { 
      dbCreate = "update" 
      url = "jdbc:postgresql:Test" 
         username = "postgres" 
         password = "highpoint" 
     } 
    } 
    production { 
     dataSource { 
      dbCreate = "create-drop" 
      url = "jdbc:postgresql:Test" 
         username = "postgres" 
         password = "highpoint" 
     } 
    } 
} 

這裏是buildconfig文件:

grails.project.class.dir = "target/classes" 
grails.project.test.class.dir = "target/test-classes" 
grails.project.test.reports.dir = "target/test-reports" 
//grails.project.war.file = "target/${appName}-${appVersion}.war" 
grails.project.dependency.resolution = { 
    // inherit Grails' default dependencies 
    inherits("global") { 
     // uncomment to disable ehcache 
     // excludes 'ehcache' 
    } 
    log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' 
    repositories { 
     grailsPlugins() 
     grailsHome() 
     grailsCentral() 

     // uncomment the below to enable remote dependency resolution 
     // from public Maven repositories 
     //mavenLocal() 
     //mavenCentral() 
     //mavenRepo "http://snapshots.repository.codehaus.org" 
     //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 eg. 

     // runtime 'mysql:mysql-connector-java:5.1.13' 
    } 
} 

奧利弗的建議,我得到在更改數據源和配置文件後,以下結果: 我不再收到404錯誤,但Tomcat現在掛起並且不顯示網站。錯誤日誌給我以下錯誤:

Nov 18, 2011 1:03:01 PM org.apache.catalina.startup.HostConfig deployDirectory 
INFO: Deploying web application directory docs 
Nov 18, 2011 1:03:02 PM org.apache.tomcat.util.digester.Digester endElement 
SEVERE: End event threw error 
java.lang.OutOfMemoryError: PermGen space 

Nov 18, 2011 1:03:02 PM org.apache.catalina.startup.HostConfig deployDirectory 
SEVERE: Error deploying web application directory docs 
java.lang.OutOfMemoryError: PermGen space' 
+1

檢查你的項目的DataSources(特別是「生產」封閉)指向你的PostgreSQL數據庫。 –

+0

@ R.Valbuena感謝您的回覆。我看了一下,它確定地指向了正確的數據庫。 – marius

+0

請從buildconfig中添加您的數據源文件和postgres lib依賴項。 –

回答

2

您沒有安裝驅動程序。

dependencies { 
    runtime 'postgresql:postgresql:9.0-801.jdbc4' 
} 

改變你的buildconfig,它應該加載。

另外,JDBC URL應該是這個樣子:

jdbc:postgresql://localhost:5432/grails 

顯然替換端口和數據庫名稱,不管你已經在PostgreSQL的成立。


編輯基礎上,進一步的信息:

提高您的PermGen,無論是與一個運行配置或導出到GRAILS_OPTS。你根據你使用的IDE做不同的處理,所以谷歌是你的朋友。如果你自己無法弄清楚,那麼這將是一個單獨的問題,所以你可以隨時接受這個答案作爲回答:-)