0

我已经将我的应用程序从往返迁移jboss5.1.2-eap到了,jboss-7.2-eap但是在迁移之后,它在启动服务器时开始给我异常。java6java8

引起:java.lang.NoClassDefFoundError: Lorg/apache/commons/dbcp/BasicDataSource

我们datasource.xml在服务器的类路径中有一个文件,具有以下代码行。

<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存在于类路径中,但它不适用于jboss-7.2-eap.

现在我不确定是否commons-dbcp-1.2.2.jar支持jboss7-eap. 因为它存在于应用程序的类路径中(存在于加载的模块中),但 spring 仍然无法为数据源创建 bean。

4

2 回答 2

0

我想 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>
于 2019-04-12T09:27:10.470 回答
0

给定文件目录jboss-deployment-structure.xml里面的模块信息。WEB-INFwar

<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>
于 2019-04-22T04:41:47.960 回答