2010-11-11 9 views
0

我是一個新手學習Grails,通過開發一個從數據庫中檢索代碼的小應用程序。細節是 -
- Apple Mac OS X(即Unix)。
- 使用NetBeans 6.9.1的Grails 1.3.5。
- 位於不同服務器上的SQL Server 2008 R2數據庫。
- JTDS驅動Grails應用程序無法連接到SQL Server(來自SOCKS服務器的格式錯誤的回覆)

這裏是DataSource.groovy的 -

dataSource { 
    pooled = false 
    driverClassName = "net.sourceforge.jtds.jdbc.Driver" 
    dialect="org.hibernate.dialect.SQLServerDialect" 

} 
hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = true 
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' 
} 
// environment specific settings 
environments { 
    development { 
      dataSource { 
      dbCreate = "update" // one of 'create', 'create-drop','update' 
      url = "jdbc:jtds:sqlserver://hbtsqldev.domain.omitted.com.au:1433;databasename=TempDatabase;useCursorFetch=true;user=username;password=omitted" 

     } 
    } 
    test { 
     dataSource { 
      dbCreate = "update" 
      url = "jdbc:jtds:sqlserver://hbtsqldev.domain.omitted.com.au:1433;databasename=TempDatabase;useCursorFetch=true;user=username;password=omitted" 
     } 
    } 
    production { 
     dataSource { 
      dbCreate = "update" 
      url = "jdbc:jtds:sqlserver://hbtsqldev.domain.omitted.com.au:1433;databasename=TempDatabase;useCursorFetch=true;user=username;password=omitted" 
     } 
    } 
} 

當我運行的Grails應用程序,我收到下面的(很長的)錯誤信息 -

2010-11 -11 10:58:00,709 [main]錯誤 context.GrailsContextLoader - 錯誤 執行引導程序:創建 錯誤bean名稱爲'messageSource': bean初始化失敗;嵌套0​​例外是 org.springframework.beans.factory.BeanCreationException:與名 'transactionManager的' 錯誤創建豆:無法解析 參考豆 'SessionFactory的' 而設置的bean屬性 'SessionFactory的';嵌套的例外是 org.springframework.beans.factory.BeanCreationException:與名 錯誤創建豆 'SessionFactory的':無法解析 參考豆 'lobHandlerDetector' 而設置的bean屬性 'LobHandler接口';嵌套異常是 org.springframework.beans.factory.BeanCreationException: 創建名爲 'lobHandlerDetector'的bean時出錯:調用 init方法失敗;嵌套異常 是 org.springframework.jdbc.support.MetaDataAccessException: 解壓時出錯 DatabaseMetaData;嵌套的例外是 值java.sql.SQLException:網絡錯誤 IOException異常:從 SOCKS服務器畸形回覆 org.springframework.beans.factory.BeanCreationException:與名 爲messageSource 錯誤創建綠豆:綠豆 的初始化失敗;嵌套的例外是 org.springframework.beans.factory.BeanCreationException:與名 'transactionManager的' 錯誤創建豆:無法解析 參考豆 'SessionFactory的' 而設置的bean屬性 'SessionFactory的';嵌套的例外是 org.springframework.beans.factory.BeanCreationException:與名 錯誤創建豆 'SessionFactory的':無法解析 參考豆 'lobHandlerDetector' 而設置的bean屬性 'LobHandler接口';嵌套異常是 org.springframework.beans.factory.BeanCreationException: 創建名爲 'lobHandlerDetector'的bean時出錯:調用 init方法失敗;嵌套異常 是 org.springframework.jdbc.support.MetaDataAccessException: 解壓時出錯 DatabaseMetaData;嵌套的異常是 java.sql。的SQLException:網絡錯誤 IOException異常:從 SOCKS服務器在 org.grails.tomcat.TomcatServer.start(TomcatServer.groovy:212)格式不正確的答覆 在 grails.web.container.EmbeddableServer $ start.call(未知 來源)在 _GrailsRun_groovy $ _run_closure5_closure12.doCall(_GrailsRun_groovy:158) 在 _GrailsRun_groovy $ _run_closure5_closure12.doCall(_GrailsRun_groovy) 在 _GrailsS​​ettings_groovy $ _run_closure10.doCall(_GrailsS​​ettings_groovy:280) 在 _GrailsS​​ettings_groovy $ _run_closure10.call(_GrailsS​​ettings_groovy) 在 _GrailsRun_g roovy $ _run_closure5.doCall(_GrailsRun_groovy:149) 在 _GrailsRun_groovy $ _run_closure5.call(_GrailsRun_groovy) 在 _GrailsRun_groovy.runInline(_GrailsRun_groovy:116) 在 _GrailsRun_groovy.this $ 4 $ runInline(_GrailsRun_groovy) 在 _GrailsRun_groovy $ _run_closure1 .doCall(_GrailsRun_groovy:59)在 RunApp $ _run_closure1.doCall(RunApp.groovy:33)在 gant.Gant $ _dispatch_closure5.doCall(Gant.groovy:381) 在 gant.Gant $ _dispatch_closure7.doCall(甘特。 groovy:415) at gant.Gant $ _dispatch_closure7.doCall(Gant.groovy)at gant.Gant.wit hBuildListeners(Gant.groovy:427) 在 gant.Gant.this $ 2個$ withBuildListeners(Gant.groovy) 在 gant.Gant $這個$ 2 $ withBuildListeners.callCurrent(未知 來源)在 gant.Gant.dispatch( Gant.groovy:415) 在 gant.Gant.this $ 2 $訊(Gant.groovy) 在 gant.Gant.invokeMethod(Gant.groovy) 在 gant.Gant.executeTargets(Gant.groovy:590) at gant.Gant.executeTargets(Gant.groovy:589) 造成者: org.springframework.beans.factory.BeanCreationException: 創建bean時出錯名稱爲 'transactionManager':無法解析 對Bean'sessionFactory' 的引用,同時設置bean屬性 'sessionFactory';嵌套的例外是 org.springframework.beans.factory.BeanCreationException:與名 錯誤創建豆 'SessionFactory的':無法解析 參考豆 'lobHandlerDetector' 而設置的bean屬性 'LobHandler接口';嵌套異常是 org.springframework.beans.factory.BeanCreationException: 創建名爲 'lobHandlerDetector'的bean時出錯:調用 init方法失敗;嵌套異常 是 org.springframework.jdbc.support.MetaDataAccessException: 解壓時出錯 DatabaseMetaData;嵌套的例外是 值java.sql.SQLException:網絡錯誤 IOException異常: org.springframework.beans.factory.BeanCreationException:從 SOCKS服務器畸形的答覆...... 23多個所致名稱爲 錯誤創建豆「SessionFactory的」 :無法解析 引用bean'lobHandlerDetector' ,同時設置bean屬性 'lobHandler';嵌套的異常是 org.springframework.beans.factory。BeanCreationException: 創建名爲 'lobHandlerDetector'的bean時出錯:初始化方法失敗時調用 ;嵌套異常 是 org.springframework.jdbc.support.MetaDataAccessException: 解壓時出錯 DatabaseMetaData;嵌套的例外是 值java.sql.SQLException:網絡錯誤 IOException異常: org.springframework.beans.factory.BeanCreationException:從 SOCKS服務器畸形的答覆...... 23多個所致 錯誤創建豆與名 「lobHandlerDetector」 :調用 init方法失敗;嵌套異常 是 org.springframework.jdbc.support.MetaDataAccessException: 解壓時出錯 DatabaseMetaData;嵌套的例外是 值java.sql.SQLException:網絡錯誤 IOException異常: org.springframework.jdbc.support.MetaDataAccessException:從 SOCKS服務器畸形的答覆...... 23多個所致 錯誤而提取 DatabaseMetaData的;嵌套的例外是 值java.sql.SQLException:網絡錯誤 IOException異常: 值java.sql.SQLException:網絡錯誤 IOException異常:從 SOCKS服務器畸形的答覆在 網從 SOCKS服務器畸形的答覆...... 23多個所致.sourceforge.jtds.jdbc.ConnectionJDBC2。(ConnectionJDBC2.java:410) 在 net.sourceforge.jtds.jdbc.ConnectionJDBC3。(ConnectionJDBC3.java:50) 在 net.sourceforge.jtds.jdbc.Driver.connect (Driver.java:184) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnecti java.net.SocketException異常:在 java.net.SocksSocketImpl.readSocksReply(從SOCKS服務器畸形 答覆是在(DriverManager.java:154) 在$ Proxy8.getMetaData(未知 源)... 23多個所致SocksSocketImpl.java:147) 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:495) 在 java.net.Socket.connect(Socket.java:529) 在 net.sourceforge.jtds.jdbc .SharedSocket.createSocketForJDBC3(SharedSocket.java:307) 在 net.sourceforge.jtds.jdbc.SharedSocket。(SharedSocket.java:257) 在 net.sourceforge.jtds.jdbc.Connectio (ConnectionJDBC2.java:311) ... 28更多

任何人都可以看到問題出在哪裏? 如果您需要我提供更多信息,請讓我知道。

+0

嘗試從連接字符串中移除'useCursorFetch'。首先,確保連接用戶不會缺少缺少的權限。 - 重要提示:查看SQL Server日誌。 – robbbert 2010-11-11 12:13:31

回答

0

你能夠從運行tomcat的地方ping數據庫服務器嗎?我正在使用帶有Microsoft JDBC 4.0驅動程序的SQL Server 2005的Grails 1.3.5。對我來說工作得很好。

dataSource.driverClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver 
dataSource.url = jdbc:sqlserver://dbserver:1433;databaseName=testDB 
+0

我能ping和telnet服務器,但我無法在Grails或RazorSQL中建立與數據庫的連接。在這兩種情況下,我都會遇到超時連接錯誤。 – Spacehamster 2010-11-12 00:54:31

相關問題