2011-08-30 22 views
1

在我的应用程序中,我有一个位于CLASS_PATH中的目录,并存储了jar文件。我使用ATG,因此必须在我的.class文件中使用适当的文件来创建组件(在这种情况下它是servlet)。所以我需要我的webapp.war在我的CLASS_PATH direcory中。我把这个战争档案,但它不工作。我怎样才能把我编译的servlet类放到这个目录中?是否有可能将war档案作为库使用?

当然,这不是好主意,只能从档案:)把这个编译的类

回答

0

在ATG,类路径由可以在其中构建耳朵的方式设置开始。 ATG中的每个模块都有一个MANIFEST文件,它指定一个名为“ATG Classpath”的属性。该属性的值用于在运行时构造类路径。因此,如果您将类文件的路径作为此属性的值包含在内,ATG会在创建耳朵时自动在类路径(runAssembler,更具体)中设置它。当部署耳朵时,Jboss会将其拾起。

1

我知道你在寻找的是一个custom class loader,适用于处理WAR文件。这样的类加载器会解压缩或查看WAR文件,以提取类文件。

我从来没有听说过任何人从WAR文件中加载,但它不应该是很难实现。

+0

这很有趣,但我不仅需要运行时的类文件。属性文件它的txt文件,我想写如下:$ class = com.myapp.webap.HelloServlet – Oleksandr

+0

我想你可以使用自定义类加载器来实现。我不是Java专家,但我只是玩一个Stackoverflow。 :) –

+0

是的,也可以用类加载器读取属性文件。 –

1

您的类加载器在war中找不到servlet类,因为它们在WEB-INF/classes中。

尝试解压和WEB-INF/classes目录复制到类路径的位置

+0

谢谢。这是工作,但它只是一个临时解决方案。你认为我应该将所有的servlet从战争中移动到另一个项目(模块)并将它打包在jar中吗?我找不到另一个没有hackaing的方式.... – Oleksandr

相关问题