如果多个Web应用程序需要jar文件?

杂烩2603

如果多个Web应用程序需要jar文件,那么您将选择哪个选项?是将其保存在服务器类路径中还是为每个Web应用程序的lib文件夹保留jar文件的一个副本?

BalusC

从技术上讲,这取决于它是哪种JAR文件,通常只有一个选择。

如果它是基于Java EE的“ Web片段” JAR文件,可以通过包含一个/META-INF/web-fragment.xml文件和/或一个/META-INF/faces-config.xml和/或一个/META-INF/*.tld文件和/或/META-INF/resources包含Web内容文件(JSP / CSS / JS / etc)文件夹来识别,则它绝对属于WAR的/WEB-INF/lib否则,将不会自动扫描,发现和安装带注释/注册的Web片段工件(模块化Servlet,过滤器,侦听器,标签,组件,Bean等)和/或Web片段资源(共享的JSP / Facelets / CSS / JS /图片文件)不能包含在webapp中。

或者,如果它表示Java EE API的实现,例如JSF,JSTL,JAX-RS等,则可以(应该)放入服务器的/lib,但是必须确保替换任何现有/较旧的实现,否则你可能会碰到的类加载引起的运行时类路径复制不同的版本库(由类/方法/领域相关的异常,如识别故障NoSuchMethodErrorLinkageError等等)。如果仍然将其包含在WAR中,则需要确保指示服务器或相关API使用WAR捆绑的实现,而不是服务器捆绑的实现。

否则,它很可能是基于“普通香草”的Java SE库,例如Apache Commons和friends。这样的库可以安全地进入服务器的库,/lib并在所有Web应用程序之间共享。至少对于具有服务加载器的JDBC驱动程序和辅助JAR,这是必需的,该服务加载器可在JVM启动期间将内容自动加载到内存中,并可以通过/META-INF/services基于Java SE的API文件夹来识别否则,将此类库放置在webapp的库中时,可能会在热部署期间发生内存泄漏风险/WEB-INF/lib,因为它无法表示Java EE已取消部署,并且不会在JVM尚未关闭时又盲目地自动加载内容。

也可以看看:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Tomcat:Web应用程序Java类文件/ jar位置

如何将包含多个jar的外部文件夹添加到Web应用程序的Maven构建中?

多个模型文件或多个应用程序?

Azure Web应用程序中的多个应用程序

指定应用程序jar文件的主机

多个 Web 应用程序的 Hazelcast 架构

Apache Tomcat:多个Web应用程序

如何在不会用作 Web 应用程序的 JavaScript 项目中使用多个文件?需要一个工作示例

如果应用程序包含多个文件,应在哪里安装?

如果它包含多个XMl文件,如何在android应用程序中支持多屏幕

多个应用程序的 docker 文件?

电子应用程序。多个html文件

在Java Web应用程序中从库JAR覆盖类文件

在Web应用程序(Tomcat7)中公开jar文件中的资源

Java Web Start / JNLP应用程序的jar文件在哪里缓存?

EJB + Web应用程序(JBoss 5)是否需要jndi.properties文件?

是否需要提交Spark应用程序jar?

如果 Microsoft 升级或更新 Azure Web 应用程序,我的文件会被删除吗?

如果我只发布 UI 文件夹,Web 应用程序如何工作

如果用户需要登录,可以拒绝应用程序吗?

如果应用程序足够,为什么序列需要monad?

在ASP.NET应用程序中具有多个Web.Config文件的好处

在 Web 应用程序中最小化和打包多个 JavaScript 文件的最佳方法?

对允许独立配置文件的Web应用程序使用多个数据库

Python Web 应用程序的想法-为多个用户提供增量/独特的文件建议

在Web应用程序的OneDrive文件选择器中支持多个域/子域

如果我的Web应用程序需要20秒才能完成请求,这是一个不好的设计吗?

如果我需要在后台调用Web服务来更新位置,我的应用程序会被拒绝吗?

如何从应用程序中的jar文件中提取文件?