jboss 4.2 datasource deployment

本文详细介绍了如何为JBoss 4.2配置JNDI以便连接DB2数据库,包括部署数据库驱动、配置数据源、调整登录配置文件等步骤,并提供了一个简单的测试示例。
  
无意下了一个jboss 4.2,想给它配jndi却百思不得,网上也没攻略,前天终于搞定了,做一下总结:
 
首先,我们得需要jdbc driver。。。我用的是DB2,我就传db2jcc.jar和db2jcc_license_cu.jar到我的server/lib下面
 
然后到docs/examples/jca/里面找自己的数据库所属的文件,放到/server/default/deploy里面,再修改一下,如
<datasources>
 <local-tx-datasource>
    <jndi-name>DB2DS</jndi-name>
    <connection-url>jdbc:db2://你的数据库IP:你的数据库端口/你的数据库                                                            
    </connection-url>
    <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
    <user-name>你的用户名</user-name>
    <password>你的密码</password>
    <min-pool-size>0</min-pool-size>
        <!-- sql to call when connection is created
        <new-connection-sql>some arbitrary sql</new-connection-sql>
        -->
        <!-- sql to call on an existing pooled connection when it is obtained from pool
        <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
        -->
      <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml -->
      <metadata>
         <type-mapping>DB2</type-mapping>
      </metadata>
 </local-tx-datasource>
</datasources>
 
再修改/server/default/conf里的standardjbosscmp-jdbc.xml文件,把java:/DefaultDS改成java:/ DB2DS
 
最后,修改server/default/conf里的login-config.xml文件,在最后添加      <application-policy name = "DB2Realm">
                <authentication>
              <login-module code =
                          "org.jboss.resource.security.ConfiguredIdentityLoginModule"
                flag = "required">
              <module-option name ="principal">DB2DS</module-option>
              <module-option name ="userName">用户名</module-option>
              <module-option name ="password">密码</module-option>
              <module-option name ="managedConnectionFactoryName">
                          jboss.jca:service=LocalTxCM,name=DB2DS
              </module-option>
      </login-module>
      </authentication>
    </application-policy>
 
好了,我们配置完毕,新建一个jsp让我们测试一下功能。。。
用eclipse新建一个动态工程,在默认index.jsp上写:
<%@ page import="javax.sql.DataSource" %>
<%@ page import="javax.naming.*"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<body>
<%
                                out.print("测试DB2DS连接<br/>");
                     try{
                               InitialContext initCtx = new InitialContext();
                                 DataSource ds = (DataSource)initCtx.lookup("java:/DB2DS   
 Connection conn = ds.getConnection();
                                 out.print("DB2 connection pool runs perfectly!");
                                 conn.close();
                     }
                    catch(Exception ex){
                     out.println("error");
                     e.printStackTrace();}
       %>
</body>
16:51:33,561 ERROR [URLDeploymentScanner] Incomplete Deployment listing: --- Incompletely deployed packages --- org.jboss.deployment.DeploymentInfo@ebb24ee4 { url=file:/opt/jboss-4.2.2.GA/server/default/deploy/acs.ear } deployer: org.jboss.deployment.EARDeployer@225b1b status: Deployment FAILED reason: URL file:/opt/jboss-4.2.2.GA/server/default/tmp/deploy/tmp3003181215135402123acs.ear-contents/acs-war-exp.war/ deployment failed state: FAILED watch: file:/opt/jboss-4.2.2.GA/server/default/deploy/acs.ear altDD: null lastDeployed: 1742892691824 lastModified: 1742892691617 mbeans: --- MBeans waiting for other MBeans --- ObjectName: jboss.j2ee:service=EjbModule,module=acs-ejb.jar State: FAILED Reason: org.jboss.deployment.DeploymentException: Error while fixing table name; - nested throwable: (org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Failed to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.lang.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver)); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resource.JBossResourceException: Failed to register driver for: com.mysql.jdbc.Driver; - nested throwable: (java.lang.ClassNotFoundException: No ClassLoaders found for: com.mysql.jdbc.Driver)))) ObjectName: jboss.web.deployment:war=acs-war.war,id=225351972 State: FAILED Reason: org.jboss.deployment.DeploymentException: URL file:/opt/jboss-4.2.2.GA/server/default/tmp/deploy/tmp3003181215135402123acs.ear-contents/acs-war-exp.war/ deployment failed --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM --- ObjectName: jboss.j2ee:service=EjbModule,module=acs-ejb.jar State: FAILED Reason: org.jboss.deployment.DeploymentException: Error while fixing table name; - nested throwable: (org.jboss.util.NestedSQLException: Could not create connection; - nested t
03-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值