在我的应用程序中,我有一个位于 CLASS_PATH 中的目录,我在其中存储 jar 文件。我使用 ATG,所以必须在属性文件中使用我的 .class 才能有一种方法来初始化组件(在这种情况下它是 servlet)。所以我需要我的 CLASS_PATH 目录中的 webapp.war。我放了这个战争文件,但它不起作用。如何将我编译的 servlet 类放到这个目录中?
当然,只从存档中放置这个编译的类并不是一个好主意:)
我认为您正在寻找的是一个自定义类加载器,适用于处理 WAR 文件。这样的类加载器会解压或查看 WAR 文件,以提取类文件。
我从未听说过有人从 WAR 文件中加载,但实现起来应该不难。
您的类加载器无法在 war 中找到 servlet 类,因为它们位于 WEB-INF/classes 中。
尝试解压缩并将 WEB-INF/classes 复制到类路径位置
在 ATG 中,Classpath 设置从您构建耳朵的方式开始。ATG 中的每个模块都有一个 MANIFEST 文件,该文件指定了一个名为“ATG Classpath”的属性。此属性的值用于在运行时构造类路径。因此,如果您将类文件的路径作为该属性的值包含在内,ATG 会在创建 ear 时自动将其设置在类路径(更具体地说是 runAssembler)中。Jboss在展开耳朵的时候会把它捡起来。