0

在 grails 应用程序中使用 mssql 的 microsoft jdbc 驱动程序的官方方法是什么?
我通过谷歌搜索发现的一般意见是,我只需要将 jar 放在 grails 应用程序的 lib 目录中。如果我执行 grails clean 并 grails compile --refresh-dependencies,这将有效。但是当我在真实服务器上部署时,我遇到了两个问题。

重新部署时,日志中会出现此警告。

24.05.2013 16:03:03 com.microsoft.sqlserver.jdbc.AuthenticationJNI 警告:无法加载 sqljdbc_auth.dll 原因:java.library.path 中没有 sqljdbc_auth

我不确定它是否需要关心,因为它是一个警告。但是我想让我的日志清理干净,就像谷歌所说的那样,我在应用程序的 lib 目录中有 dll。此外,在重新部署时,有几条类似这样的消息可能与第一个消息有关:

24.05.2013 16:03:02 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SCHWERWIEGEND:Web 应用程序创建了一个 ThreadLocal,其键类型为 [org.codehaus.groovy.runtime.GroovyCategorySupport.MyThreadLocal](值 [org.codehaus. groovy.runtime.GroovyCategorySupport$MyThreadLocal@76fe8d1b]) 和 [null] 类型的值(值 [null]),但在 Web 应用程序停止时未能将其删除。为防止内存泄漏,已强制删除 ThreadLocal。

最后一件事是我的同事说,她认为驱动程序不应该安装在每个应用程序的基础上,而是直接安装到 tomcat 中。我实际上不知道该怎么做,但是如果我这样做了,这会在开发机器上引起问题,因为我不知道如何让 grails run-app 在应用程序 lib 目录中没有驱动程序的情况下运行。

4

1 回答 1

0

您仍然可以将库放在lib项目的文件夹中,并将其从战争生成中排除。

您无需在每次构建项目时都排除 jar,只需按照此帖子提示操作即可。

在您的 Tomcat 服务器中,jar 将被放置在共享 lib 文件夹中,而不是每个 Web 应用程序中。

如果在那之后您仍然收到警告,sqljdbc_auth.dll您将需要找到此文件并将该文件夹添加到 Tomcat 类路径中(或复制到 Tomcat lib 文件夹)。

于 2013-05-24T16:51:35.797 回答