Jsf jetty 5自定义类加载器能否在war中排除特定的jar文件?

Jsf jetty 5自定义类加载器能否在war中排除特定的jar文件?,jsf,jetty,classloader,Jsf,Jetty,Classloader,我有一个很大的代码库,目前运行在嵌入式Jetty 5.1.14服务器(Servlet2.4)上的JSF1.1上。我已经设法在这个版本的Jetty上运行了一个JSF2.0.9应用程序,尽管我希望需要Servlet2.5,并且我将EL2.1.2&JSFJAR添加到WEB-INF/lib中。这适用于不包括JSF 1.1的jetty配置 生产环境由单个服务器实例上的大量war和jar文件组成 JSF1.1当前位于ServerExt/lib文件夹中,在一个war文件中,我希望在WEB-INF/lib中包含

我有一个很大的代码库,目前运行在嵌入式Jetty 5.1.14服务器(Servlet2.4)上的JSF1.1上。我已经设法在这个版本的Jetty上运行了一个JSF2.0.9应用程序,尽管我希望需要Servlet2.5,并且我将EL2.1.2&JSFJAR添加到WEB-INF/lib中。这适用于不包括JSF 1.1的jetty配置

生产环境由单个服务器实例上的大量war和jar文件组成

JSF1.1当前位于ServerExt/lib文件夹中,在一个war文件中,我希望在WEB-INF/lib中包含JSF2JAR。这是不可能的,因为服务器JSF版本将首先加载并导致类路径污染

然而,是否有可能使用自定义类加载器在一个war文件中消除JSF1.1JAR加载?文档似乎是为了适应向类路径添加路径而不是排除某些东西的情况。我不清楚它是在整个服务器的上下文中加载的,还是仅仅在战争中加载的

更多信息:另一个可能的解决方案是升级到Jetty 8和JSF 2.1+。除了让管理层相信这是一个好主意之外,我们还使用了一个旧的WebMethods7版本,它有一个图形布局工具,可以生成一些XML,这些XML由组件应用程序框架转换,该框架使用JSF API生成内容(因此只有很少的JSP)。这只是一个简单的例子,看看它是否有效,如果因为需要继续支持这个WebMethods“代码”而没有进行全面的重新思考


这里的主要目标是最终运行最新的软件,尽管不一定是一步到位。

Jetty5在这一点上非常旧,我建议对jetty8进行更新,或者等待几个月,然后跳到jetty9,我们目前正在发布里程碑。仅从那时起,新jvm中的更改就足以更新jetty容器


我不知道jetty5是否支持这种方法,但在jetty6中,我们可以在webapp上下文上通过系统和服务器类修改暴露在上下文中的类。如果这些钩子存在,那么您应该能够调整特定的上下文,以避免在ext/lib中暴露jar中的类。

谢谢您的回答。请给我一个指向您引用的系统和服务器类的指针。谢谢这是我知道存在于6-9中的概念,你必须在5号码头四处看看它是否存在。