Миграция в JBoss7.2eap из jboss5.1.2eap: java.lang.NoClassDefFoundError: Lorg/apache/commons/dbcp/BasicDataSource

Я перенес свое приложение из jboss5.1.2-eap в jboss-7.2-eap а также java6 в java8 но после миграции он начинает выдавать исключение при запуске сервера.

Вызвано: java.lang.NoClassDefFoundError: Lorg/apache/commons/dbcp/BasicDataSource

у нас есть datasource.xml файл присутствует в classpath сервера, имея следующую строку кода.

<bean id="beanName" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
    <property name="maxActive" value="10"/>

Также у нас есть commons-dbcp-1.2.2.jar присутствует в classpath, но он не работает для jboss-7.2-eap,

Теперь я не уверен, если commons-dbcp-1.2.2.jar поддерживается jboss7-eap , так как он присутствует в пути к классам приложения (присутствует в загруженном модуле), но все еще Spring не может создать компонент для источника данных.

2 ответа

Я предполагаю, что источник данных в Jboss EAP должен быть помещен в файл конфигурации standalone.xml и выглядит здесь:

<datasource jndi-name="java:jboss/datasources/Altis" pool-name="Altis" enabled="true">
  <connection-url>jdbc:oracle:thin:@255.255.255.255:1521:sid</connection-url>
  <driver-class>oracle.jdbc.OracleDriver</driver-class>
  <driver>oracle</driver>
  <security>
    <user-name>username</user-name>
    <password>passwd</password>
  </security>
</datasource>

Данная информация модуля в jboss-deployment-structure.xml внутри WEB-INF каталог war файл.

<jboss-deployment-structure>  
  <deployment>  
    <dependencies>  
     <module name="com.oracle.sql" export="true"/>
     <module name="org.apache.commons.dbcp" export="true"/>       
     </dependencies>  
   </deployment>  
</jboss-deployment-structure>

Кроме того, каталоги модулей также должны следовать тем же правилам именования, что и в случае наличия ваших файлов.class внутри jar, как в моем случае я создал модуль org.apache.commons.dbcp как при открытии commons-dbcp-1.2.2.jar файл, файлы.class присутствуют внутри org/apache/commons/dbcp папка.

Примечание: в случае нескольких модулей вам нужно определить их зависимость, если модуль зависит от другого, и эта информация будет предоставлена ​​внутри module.xml файл. лайк

 <module xmlns="urn:jboss:module:1.1" name="org.apache.commons.dbcp">  
   <resources>  
       <resource-root path="commons-dbcp-1.2.2.jar"/>
   </resources>  
   <dependencies>
      <module name="org.apache.commons.pool"/>
      <module name="com.oracle.jdbc.driver"/>
   </dependencies>
 </module>
Другие вопросы по тегам