WAR类从其他WAR访问另一个类

时间:2015-06-17 00:32:03

标签: java jboss classloader war wildfly-8

我是 Jboss Wildfly 8.2 实例我有一个webapp ROOT.war和另一个OTHER.war,我需要OtherXYZ.class内的OTHER.war类能够访问RootXYZ.class。我已经在某个地方读到了EAR这可能是可能的,但我不知道怎么做。

这里有我需要实现的模式

                     ClassesVisibleToAllWars.jar
                     /          |              \    
            (access)/           |(access)       \(access)
                   /            |                \
            Root.war         Other1.war         Other2.war
           /                    |                    |
        R.class              O1.class              O2.class  
  • 不能创建/使用Global Module放入wildfly/modules目录。我只能访问standalone/deployments/*目录
  • 来自ClassesVisibleToAllWars.jar的所有课程必须对R.classO1.classO2.class可见,例如
  • 最终可能会部署新的其他.war文件,并且此行为必须保留

问题

我应该放ClassesVisibleToAllWars.jar以实现该架构吗?

1 个答案:

答案 0 :(得分:4)

你将无法在另一场战争中引用一个类。

如果你作为一个耳朵部署,你可以将RootXYZ.class拉出ROOT.war,然后将它放在一个jar中,该jar将位于两个战争的类路径中(通常位于耳朵的/ lib目录中)。我不确定在Wildfly中设置它所需的确切步骤,但它的'通常是META-INF / application.xml中的设置,类似于:

<library-directory>/lib</library-directory>

因为在上面你已经将公共类拉入jar文件中,我可能只是在每个war文件中包含这个jar作为构建过程的一部分。