将jcifs jar添加到tomcat classpath中

我有以下issus:

在我的web应用程序中,其中一个jar必须位于tomcat5.5 $ CLASSPATH中,而不是像WEBAPP / lib中的其他。

我把它放在tomcatdir / server / lib中。 (然后在tomcatdir / common / lib中)。 没有成功。

如果jar没有被系统加载器(java)加载,我不能使用jar提供的所有function。

使用“smb”types的scheme准确地定位一个types为URL的variables。

事实上,我试图做到以下几点:

http://jcifs.samba.org/src/docs/faq.html#ukproto

任何人都有同样的问题? 在tomcat有更多的经验?

谢谢

安托万

解决scheme分两部分:

  1. 手动将jcifs jar添加到tomcat类path(通过明确地将绝对path添加到/ect/init.d/tomcat5.5)。

  2. 还设置了以下java系统属性:

- java.protocol.handler.pkgs=jcifs要做到这一点有两个select

  • 以例子的forms做你的源代码。

     Properties prop = System.getProperties(); prop.setProperty("java.protocol.handler.pkgs", "jcifs"); 
  • 或者在lauch或TOMCAT(而不是应用程序)上使用java -Djava.protocol.handler.pkgs = jcifs。 看到tomcat启动脚本,一个variables就是这个意思。 (JAVA_OPT)

如果您确认没有将其加载到类path中(即通过debugging器或其他方法),则可能必须将其放在$ JDK_HOME / jre / lib目录中,以确保System classloader将其加载到VM 。

或者,如果您想访问CIFS文件系统,则可以使用Apache Commons VFS项目。 它是许多不同文件系统的一个包装,我用它在过去的一些项目中取得了巨大的成功。 把它放在$ CATALINA_HOME / common / lib目录(其中$ CATALINA_HOME是你的Tomcat目录),我从来没有遇到任何困难。 虽然我现在应该警告CIFS模块正在孵化。