Grails MS SQLServer 2008 jdbc驱动导致tomcat出现问题



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

重新部署时,在日志中有这个警告。

24.05.2013 16:03:03 com.microsoft.sqlserver.jdbc.AuthenticationJNI加载sqljdbc_auth.dll失败原因:没有sqljdbc_auth in java.library.path

我不确定这是否值得关心,因为这是一个警告。但我想有我的日志干净,我有dll在应用程序的lib目录,就像谷歌所说的。另外,在重新部署时,有几个类似的消息可能与第一个消息相关:

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

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

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

您不需要每次构建项目时都排除jar,只需遵循此帖子提示。

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

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

最新更新