Como posso adicionar um módulo jboss 7.1 que contém classes que implementa / estende de classes no arquivo ear principal do servidor?

Eu tenho um servidor JBoss que possui um arquivo ear. Meu arquivo de orelha tem um arquivo de guerra. O arquivo war tem um arquivo jar "server-artifact.jar". O ponto final do serviço do meu servidor está nesse frasco. A classe no arquivo jar carrega uma classe dinamicamente para executar uma ação.

Class<?> clazz = (Class<?>) Class.forName("com.test.TestExternalAccess");
try {
  TestExternalAccessParent extClassObject = (TestExternalAccessParent) clazz.newInstance();
  extClassObject.sayHelloToExternalAccess();
} catch (InstantiationException | IllegalAccessException e) {
  e.printStackTrace();
}

O arquivo jar que contém "TestExternalAccessParent", que é uma interface, também faz parte do arquivo war. A classe "TestExternalAccess" é uma classe concreta que deve ser uma unidade conectável para o meu servidor. Para conseguir isso, eu criei um módulo jboss e coloquei na pasta de módulos (como?):

<module xmlns="urn:jboss:module:1.1" name="com.test">
  <resources>
    <resource-root path="externalLibrary-0.0.1-SNAPSHOT.jar"/>
  </resources>
</module>

Eu também editei o jboss-deployment-structure.xml e adicionei a dependência<module name="com.test" /> Eu inicio meu servidor e o executo. Eu recebo a seguinte exceção quando o carregamento dinâmico da classe acontece:java.lang.ClassNotFoundException: com.test.TestExternalAccess from [Module "deployment.myservice-ear.ear:main" from Service Module Loader]

Algumas coisas que eu tentei: 1) Tentei carregar uma classe do módulo externo que não implementa uma interface no arquivo jar do arquivo ear principal e que funciona bem. 2) Alterei meu módulo para incluir o arquivo jar que contém a interface.

<module xmlns="urn:jboss:module:1.1" name="com.test">
  <resources>
    <resource-root path="externalLibrary-0.0.1-SNAPSHOT.jar"/>
    <resource-root path="externalParentLibrary-0.0.1-SNAPSHOT.jar"/>
  </resources>
</module>

Isso funciona bem também. 3) Adicionada a seguinte dependência ao meu módulo:

<dependencies>
  <module name="deployment.myservice-ear.ear"/>
</dependencies>

Isso não funciona.

O carregador de classe que carregou meu ouvido usa outro carregador de classe para carregar meu módulo externo e obter acesso às classes desse módulo. Mas as classes no meu módulo externo não parecem conseguir acessar os frascos no ouvido. Como posso fazer isso acontecer? Eu quero adicionar módulos de biblioteca externa que tem acesso a classes nas classes de arquivo de orelha do meu servidor.

questionAnswers(1)

yourAnswerToTheQuestion