2017-01-20 5 views
0

Мы строим серию новых приложений Spring, которые имеют общие поддерживающие JAR-файлы. В приложениях, развернутых в среде Tomcat, мир хорош. Этим же JAR-файлам необходимо получить доступ к старым приложениям, которые работают под JBoss в среде, отличной от Spring. Может ли кто-нибудь указать мне место или объяснить здесь, как настроить Spring и JBoss, чтобы JARs функционировали правильно или как их упаковывать, чтобы зависимости Spring были частью JAR. Maven также находится в миксе.Настройка Spring и JBoss

ответ

0

Вы можете определить Spring как модуль

Ниже приведены шаги по созданию Spring модуля:

1.Download нужную версию Spring. В этом примере мы используем Spring 3.1.1.

2.Создание справочника: $ JBOSS_HOME/modules/org/springframework/spring/main.

3. Загрузите библиотеки Spring, загруженные в этот каталог.

4.Создать module.xml со следующим содержимым в этом каталоге. Убедитесь, что они соответствуют именам библиотек:

<?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.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.asm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.aspects-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.beans-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.context-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.context.support-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.core-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.expression-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.instrument-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.instrument.tomcat-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.jdbc-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.jms-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.orm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.oxm-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.test-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.transaction-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.portlet-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.servlet-3.1.1.RELEASE.jar"/> 
    <resource-root path="org.springframework.web.struts-3.1.1.RELEASE.jar"/> 
    </resources> 
    <dependencies> 
    <module name="org.apache.commons.logging"/> 
    <module name="javax.api" export="true"/> 
    <module name="org.jboss.vfs"/> 
    </dependencies> 
</module> 

Здесь абсолютная минимальная module.xml (различные версии Spring не имеет значения):

<?xml version="1.0"?> 
<module xmlns="urn:jboss:module:1.1" name="org.springframework.spring"> 
    <resources> 
    <resource-root path="spring-aop-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-beans-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-context-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-core-3.2.3.RELEASE.jar"/> 
    <resource-root path="spring-expression-3.2.3.RELEASE.jar"/> 
    </resources> 
    <dependencies> 
    <module name="javax.api"/> 
    <module name="org.apache.commons.logging"/> 
    </dependencies> 
</module> 

5.put следующим JBoss-deployment- struct.xml в вашем архиве приложений (WEB-INF/jboss-deployment-structure.xml для WAR или META-INF/jboss-deployment-structure.xml для EAR или EJB-jar) для использования вышеуказанного модуля:

Если вы используете JBoss EAP 6.1.x и выше, используйте ниже:

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

Если JBoss EAP 6.0.x, то используйте ниже

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
    <dependencies> 
     <module name="org.springframework.spring" export="true"> 
     <imports> 
      <include path="META-INF**"/> 
      <include path="org**"/> 
     </imports> 
     <exports> 
      <include path="META-INF**"/> 
      <include path="org**"/> 
     </exports> 
     </module> 
    </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

Примечание: мета-инф на модуле в был добавлен в JBoss EAP 6.1.0 в JBoss-развертывания-structure.xml, который позволяет видеть файлы в META-INF ресурса. Поскольку это не было доступно в JBoss EAP 6.0.x, раздел позволяет получить доступ к каталогу META-INF, который по умолчанию не отображается.

Примечание. Модуль Spring Framework не должен включать такие ресурсы, как servlet-api.jar, xml-apis.jar, jta-api.jar и другие API. Эти API реализованы либо JDK, либо JBoss, и попытка использовать другую версию API приведет к проблемам с загрузкой и другим проблемам.

Примечание. Модуль Spring должен включать все его зависимости от не Java/JavaEE. Модуль Spring может зависеть от javax.api/javaee.api, предоставленного JBoss и любым открытым JBoss-модулем, но для других зависимостей Spring такой как aopalliance, они должны быть включены как ресурсы в модуль или в другой настраиваемый модуль.

+0

Последует за этими шагами, и теперь я получаю файл, который не найден, когда он пытается загрузить первую банку. Имя файла - spring-aop-4.3.2.RELEASE.jar, и я попробовал как «» и « 'любые предложения @ anup-dey? – Smoketx

+0

Я выяснил, проблема в файле не найдена. – Smoketx

Смежные вопросы