0

grails アプリケーションで mssql 用の Microsoft jdbc ドライバーを使用する公式の方法は何ですか?
グーグルで見つけた一般的な意見は、jar を grails アプリの lib ディレクトリにドロップするだけでよいというものです。これは、grails clean を実行し、grails compile --refresh-dependencies を実行すると機能します。しかし、実サーバーにデプロイすると、2 つの問題が発生します。

再デプロイすると、ログにこの警告が表示されます。

24.05.2013 16:03:03 com.microsoft.sqlserver.jdbc.AuthenticationJNI 警告: sqljdbc_auth.dll 原因の読み込みに失敗しました: java.library.path に sqljdbc_auth がありません

警告なので気にする必要があるかどうかはわかりません。しかし、ログをきれいにしたいのですが、Googleが言っているように、アプリケーションのlibディレクトリにdllがあります。さらに、再デプロイ時に、最初のメッセージに関連する可能性のある次のようなメッセージがいくつかあります。

24.05.2013 16:03:02 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap SCHWERWIEGEND: Web アプリケーションは、タイプ [org.codehaus.groovy.runtime.GroovyCategorySupport.MyThreadLocal] (値 [org.codehaus. groovy.runtime.GroovyCategorySupport$MyThreadLocal@76fe8d1b]) と [null] 型の値 (値 [null]) が含まれていましたが、Web アプリケーションが停止したときに削除できませんでした。メモリ リークを防ぐために、ThreadLocal は強制的に削除されました。

最後に、私の同僚は、ドライバーはアプリケーションごとにインストールするのではなく、Tomcat に直接インストールするべきだと考えていると言いました。私は実際にこれを行う方法を知りませんが、アプリケーション lib ディレクトリにドライバーがないと grails run-app を実行する方法がわからないため、これを行った場合、開発マシンで問題が発生します。

4

1 に答える 1

0

ライブラリをlibプロジェクトのフォルダーに配置して、これを war 生成から除外することもできます。

プロジェクトをビルドするたびに jar を除外する必要はありません。この投稿のヒントに従ってください。

Tomcat サーバーでは、jar は各 Web アプリケーションではなく共有 lib フォルダーに配置されます。

その後も警告が表示sqljdbc_auth.dllされる場合は、このファイルを見つけて、Tomcat クラスパスにフォルダーを追加する (または Tomcat lib フォルダーにコピーする) 必要があります。

于 2013-05-24T16:51:35.797 に答える