JBoss EAP 6 Spring

Configurando o Módulo do Spring Framework no JBoss AS 7.1.2(JBoss EAP 6)

Postado em Atualizado em

Olá amigos,

Atualmente estou trabalhando com Spring Framework 3 em um projeto bem legal.  Por motivos arquiteturiais resolvemos utilizar o Spring ao invés do JavaEE 6. Sendo assim a nossa aplicação possui todas as bibliotecas no diretório WEB-INF/lib  gerando um .war gigante prejudicando o deploy,  pois nós utilizamos o Jenkins para integração contínua, então ao gerarmos o building do projeto o .war é deployado no JBoss AS 7 automaticamente. Conversando o time chegamos a conclusão de que a melhor maneira de resolver isso é a criação de um módulo do Spring no JBoss com todas as bibliotecas que estamos utilizando.

O primeiro passo é baixar a versão do Spring utilizada, que no nosso caso é a 3.1.

Eu baixei o último release: spring-framework-3.1.2.RELEASE.zip

Devemos criar a estrutura de diretórios no JBoss que armazenará as libs do Spring.  A seguinte estrutura deve ser criada:

JBOSS_HOME\modules\org\springframework\spring\main

Copie todas as bibliotecas do Spring que serão utilizadas para esse diretório.

Agora no mesmo diretório JBOSS_HOME\modules\org\springframework\spring\main crie o arquivo  module.xml e e insira as bibliotecas e suas dependências como abaixo:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring">
 <resources>
   <resource-root path="org.springframework.aop-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.asm-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.aspects-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.beans-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.context.support-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.context-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.core-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.expression-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.instrument.tomcat-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.instrument-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.jdbc-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.jms-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.orm-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.oxm-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.test-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.transaction-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.web.portlet-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.web.servlet-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.web.struts-3.1.2.RELEASE.jar"/>
   <resource-root path="org.springframework.web-3.1.2.RELEASE.jar"/>

   <!-- Insert resources here -->
 </resources>

 <dependencies>
   <module name="javax.api"/>
   <module name="javax.jms.api"/>
   <module name="javax.annotation.api"/>
   <module name="javax.servlet.api"/>
   <module name="org.apache.commons.logging"/>
   <module name="org.jboss.vfs"/>
 </dependencies>
</module>

No WEB-INF da aplicação crie o arquivo jboss-deployment-structure.xml e declare a dependência do módulo do Spring.

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
    <dependencies>
      <module name="org.springframework.spring" />
    </dependencies>
  </deployment>
</jboss-deployment-structure>

Realize o deploy da aplicação e verifique se tudo está funcionando corretamente.

Espero que tenha ajudado.

Abraços