如何在Jetty 9.1.1中的目录中包含所有.jar文件

时间:2014-02-11 13:14:16

标签: java jetty classpath

我们正在从Jetty 9.0.6升级到9.1.1,并正在完成配置更改以完成转换。我们的应用程序部署了许多Web上下文,所有这些都使用位于外部目录中的公共库集(apache commons,logging,specific db等)(即 - 在Jetty部署之外)。

在Jetty 9.0.6中,我们在启动时包含了一个参数,该参数引用了这些公共库的顶级目录:

java -jar .\start.jar lib=M:\common\lib

在切换到Jetty 9.1.1时,标志已更改为 - lib 。使用 - list-configs ,我们验证了该目录位于start.jar创建的类路径中。但是,当应用程序启动时,我们遇到了许多ClassNotFound问题。所有这些错误都是针对位于公共库中的jar文件中包含的类。

这让我相信该标志适用于非jar类或特定jar文件列表。我们也试过使用M:\ common \ lib *和m:\ common \ lib * .jar无济于事。

我搜索了类似问题的任何报告,但发现没有人问这个问题。有没有人知道如何在启动时将位于目录中的所有.jar文件传递给Jetty 9.1.1?

1 个答案:

答案 0 :(得分:0)

我在Jetty网站上通过以下网址报告了此问题:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=428097

将继续从那里跟踪有关配置或问题的更多信息。

<强>更新 - 此问题已解决并合并到Jetty 9.2代码库中。对于版本9.1.5,我们创建了一个自定义模块,它指定目录中的所有.jar文件,并且工作正常(尽管不理想)。

commonlib.mod文件如下所示:

#
# commonlib Module
#

[lib]
M:\commonlib\commons-codec-1.4.jar
M:\commonlib\commons-fileupload-1.2.1.jar
M:\commonlib\commons-io-2.3.jar
M:\commonlib\commons-logging-1.1.1.jar
M:\commonlib\commons-net-2.2.jar
M:\commonlib\commons-pool-1.6.jar

使用命令行将commonlib模块添加到start.ini文件中(尽管手动编辑也可以正常工作)。