在grails应用程序中为mssql使用microsoft jdbc驱动程序的官方方法是什么? 我通过谷歌搜索找到的一般意见是我只需要将jar放在grails应用程序的lib目录中。如果我执行grails clean和grails编译--refresh-dependencies,这是有效的。但是当我在真实服务器上部署时,我有两个问题。
重新部署时,日志中会出现此警告。
24.05.2013 16:03:03 com.microsoft.sqlserver.jdbc.AuthenticationJNI WARNUNG:无法加载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@ocalfe8d1b]),类型为[null] ](值[null])但在Web应用程序停止时无法将其删除。为了防止内存泄漏,ThreadLocal已被强行删除。
最后一件事是我的同事说,她认为驱动程序不应该按应用程序安装,而是直接安装到tomcat中。我实际上不知道如何做到这一点,但如果我这样做,这将导致开发机器上出现问题,因为我不知道如何在应用程序lib目录中没有驱动程序的情况下运行grails run-app。 / p>
答案 0 :(得分:0)
您仍然可以将库放在项目的lib
文件夹中,并将其从战争生成中排除。
每次构建项目时都不需要排除jar,只需follow this post tip。
在Tomcat服务器中,jar将放在共享的lib文件夹中,而不是放在每个Web应用程序中。
如果之后仍然收到有关sqljdbc_auth.dll
的警告,则需要找到此文件并在Tomcat类路径中添加该文件夹(或复制到Tomcat lib文件夹)。