我有以下问题:
在我的网络应用程序中,其中一个 jar 必须在 tomcat5.5 $CLASSPATH 中,而不是像 WEBAPP/lib 中的另一个。
我把它放在tomcatdir/server/lib中。(然后在 tomcatdir/common/lib 中)。没有成功。
如果系统加载器( java )没有加载 jar,我无法使用 jar 提供的所有功能。
准确地说,将 URL 类型的变量与“smb”类型的方案结合起来。
事实上,我正在尝试执行以下操作:
http://jcifs.samba.org/src/docs/faq.html#ukproto
有同样问题的人吗?有更多的tomcat经验吗?
谢谢
安托万
解决方案分为两部分:
手动将 jcifs jar 添加到 tomcat 类路径(通过明确地将绝对路径添加到 /ect/init.d/tomcat5.5)。
还设置以下 java System 属性:
- java.protocol.handler.pkgs=jcifs
要做到这一点有两个选择做你的源代码,以应用程序为例。
或 java -Djava.protocol.handler.pkgs=jcifs 在 lauch 或 TOMCAT (不是应用程序)。请参阅 tomcat 启动脚本,一个变量就是这个意思。( JAVA_OPT )
如果您确认它没有被加载到您的类路径中(即通过调试器或其他方法),您可能必须将其放在 $JDK_HOME/jre/lib 目录中以确保系统类加载器将其与 VM 一起加载.
或者,如果您想访问 CIFS 文件系统,您可以使用 Apache Commons VFS 项目。它是许多不同文件系统的包装器,我在自己过去的许多项目中都使用它取得了巨大的成功。将它放在 $CATALINA_HOME/common/lib 目录(其中 $CATALINA_HOME 是您的 Tomcat 目录)中,我从来没有遇到任何困难。尽管我应该警告您 CIFS 模块目前正在孵化中。