当前位置: 首页 > 知识库问答 >
问题:

在Java web应用程序中加载外部库

艾国安
2023-03-14

我的场景如下:

我有一个部署到servlet容器的webapp.war。此webapp.war在web-inf/lib中包含以下库:

  • lib_a.jar
  • lib_b.jar

我还有一个库,比如lib_vendor.jar,由于许可问题,我无法在webapp/web-inf/lib中部署,所以我让客户在应用程序安装后在tomcat/lib中复制这个库。但是由于lib_vendor.jar需要在web应用程序类加载器中加载的lib_a.jar和lib_b.jar,所以我不能使用lib_vendor.jar。

如何在web应用程序的同一个类加载器中加载外部库(不在WEB-INF/lib中)?

共有1个答案

袁凌
2023-03-14

由于您使用的是Tomcat,因此可以利用VirtualWebAppLoader。

添加meta-inf/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/somepath/myapp">
    <Loader className="org.apache.catalina.loader.VirtualWebappLoader"
              virtualClasspath="/somedir/*.jar"/>
</Context>

还请记住,virtualClasspath属性必须是绝对路径,如下文注释中正确说明的那样。

 类似资料:
  • 一些背景:我正在使用Jquery Mobile(1.4稳定版)和Phonegap(3.3版)构建一个应用程序。我目前正在Android 2.3(设备)和Android 4.1.2(模拟器)上测试。我在索引中有一个链接。html有一个指向另一个页面的链接(比如说,test.html也是一个JQM页面)。<代码>测试。html也位于应用程序的www文件夹中。但它是一个相当大的html文件,大小为159

  • 通过将jar复制到项目中并编辑pom.xml文件,我设法添加了库,如下所示: 代码编译文件,但我在运行时得到一个错误: java.lang.NoClassDeffounderRror:com/bloomberglp/blpapi/sessionoptions 我的猜测是JVM在类路径中找不到类定义。通常,在NetBeans中向标准java项目添加外部库时(通过项目属性中的libraries部分),

  • 在我的SpringBootWeb服务应用程序中,我想加载一个名为appName的属性,该属性的值在application.properties中定义。 application.properties具有以下条目 我通过主应用程序类启动应用程序,如下所示 但是,当我运行应用程序时,我得到以下错误 原因:java.lang.IllegalArgumentException:无法解析字符串值“${appN

  • 我有一个在web容器tomcat上运行的java web应用程序。该web应用程序使用hibernate框架连接到DB,我需要将其从IntelliJ 14.0.2部署到heruko。所以我添加了maven框架,这就是pom。xml: 当设置maven的编辑配置并运行它时,我得到一条消息:[错误]在当前项目和插件组[org.apache.maven.plugins,org.codehaus.mojo

  • 我正在开发一个使用Hibernate的简单JSF应用程序。我将所有必需的库导入WEB-INF/lib文件夹,并将它们指向类路径。但是当我尝试编译它时,我遇到了错误: 这是我创建SessionFactory并使用它的代码: 我在这里使用它: 那我做错了什么?我该怎么解决这个问题?

  • 本文向大家介绍在SAP UI5中加载外部库,包括了在SAP UI5中加载外部库的使用技巧和注意事项,需要的朋友参考一下 可以使用普通脚本标签中的文件插入外部库。SAP UI5还支持JQuery,因此可以通过扩展控制器的标题来完成。 您还可以使用以下命令添加任何外部文件- 您可以导航到以下路径以了解更多详细信息- https://blogs.sap.com/2016/04/22/include-ex