web-dev-qa-db-ja.com

Tomcatにネイティブライブラリを追加する方法

Tomcatにgdalライブラリを追加したい。私は Tomcatにないネイティブライブラリ を読みましたが、startup.batのどこに-Djava.library.pathを追加するべきかわかりません。

エラー:

exception

javax.servlet.ServletException: Servlet execution threw an exception
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.Java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.Java:70)

root cause

Java.lang.UnsatisfiedLinkError: org.gdal.ogr.ogrJNI.GetDriverCount()I
org.gdal.ogr.ogrJNI.GetDriverCount(Native Method)
org.gdal.ogr.ogr.GetDriverCount(ogr.Java:98)
org.geotools.data.ogr.OGRDataStore.<clinit>(OGRDataStore.Java:169)
test.Read.getKadnum(Read.Java:56)
test.Zipper.mifUnzip(Zipper.Java:139)
test.Zipper.Unzip(Zipper.Java:60)
test.uploadfile.doPost(uploadfile.Java:105)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.Java:722)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.Java:72)
com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.Java:70)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.23 logs.

以下からgdal 64ビットをダウンロードしました http://vbkto.dyndns.org:1280/sdk/PackageList.aspx?file=release-1600-x64-gdal-1-9-mapserver-6-2.Zip

14
Kliver Max

これは、startup.batではなくcatalina.batで設定する必要があります。

set Java_OPTS="-Djava.library.path=/usr/Tomcat/shared/lib"

後に置くことができます

:noJuliManager
set Java_OPTS=%Java_OPTS% %LOGGING_MANAGER%
11
coderLMN

受け入れられた回答(2016年2月現在)は、明らかに間違っています。

  • あなたはnevercatalina.bat/catalina.shを編集することになっています。やめろ! (Tomcatのbin/ディレクトリにある、あなたが触れることになっている唯一のファイルはsetenv.batです)。

  • 正しい構成変数はCATALINA_OPTSであり、Java_OPTSではありません。

  • Windowsを使用している場合、引用符が実際の値の一部になるため、SETコマンドの値を引用符で囲まないでください。 (Unix/Linuxとは異なり)

  • すでにJava.library.pathにあるものを保持したい場合があります。

(以下では、Windowsを使用していると仮定し、Linux/Solaris/Mac OSXに応じて変更します).

その方法は次のとおりです。setenv.batというファイルをcatalina.batと同じディレクトリに配置します。以前に自分で作成していない限り、ファイルは存在しません。したがって、ファイルを作成します。それはあなたの目的のために次の内容を持っている必要があります:

set CATALINA_OPTS=%CATALINA_OPTS% -Djava.library.path=%PATH%;c:\mydlls

WindowsではJava.library.pathはデフォルトで%PATH%になるため、上記のすべてへの代替ルートはPATH環境変数を変更することでした。

JVMがネイティブライブラリをロードする場所から正確に混乱したくない場合は、上記の%PATH%;の部分を省略してください。個人的にはこの理由で%PATH%を省略していますが、それは好みの問題です。

31
peterh

Catalina.batのコメントによると、適切な場所はCATALINA_OPTSだと思います。

rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
rem                   "run" or "debug" command is executed.
rem                   Include here and not in Java_OPTS all options, that should
rem                   only be used by Tomcat itself, not by the stop process,
rem                   the version command etc.
rem                   Examples are heap size, GC logging, JMX ports etc.
5
Francesco