![](/img/trans.png)
[英]How to handle shared native library in multiple web applications on Tomcat
[英]How to add a native library in Tomcat?
我想在Tomcat中添加gdal库。 我读了Tomcat中找不到的Native库,但是不知道在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.
我从http://vbkto.dyndns.org:1280/sdk/PackageList.aspx?file=release-1600-x64-gdal-1-9-mapserver-6-2.zip下载了gdal 64bit。
接受的答案(截至2016年2月)是完全错误的。
你永远不应该编辑catalina.bat
/ catalina.sh
。 别 ! (你应该触摸的Tomcat bin/
dir中唯一的文件是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%
因为这个原因,但这是一个品味的问题。
它必须在catalina.bat
而不是startup.bat中设置。
set JAVA_OPTS="-Djava.library.path=/usr/tomcat/shared/lib"
可以放在后面
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
根据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.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.