posts - 189,comments - 115,trackbacks - 0
          jboss數(shù)據(jù)源配置問題

          在使用JBOSS數(shù)據(jù)源的時候出現(xiàn),版本為jboss-4.0.4RC1,使用default配置,添加一個mysql的數(shù)據(jù)源

          1.將mysql包mysql-connector-java-5.0.0-beta-bin.jar拷到.\default\lib下

          2.環(huán)境變量設(shè)置了JAVA_HOME和JBOSS_HOME

          3.修改mysql-ds.xml到deploy目錄,內(nèi)容為:

          <?xml version="1.0" encoding="UTF-8"?>
          <datasources>
          ? <local-tx-datasource>
          ??? <jndi-name>MySqlDS</jndi-name>
          ??? <connection-url>jdbc:mysql://127.0.0.1:3306/testdb</connection-url>
          ??? <driver-class>com.mysql.jdbc.Driver</driver-class>
          ??? <user-name>root</user-name>
          ??? <password>root</password>
          ??? <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
          ??? <metadata>
          ?????? <type-mapping>mySQL</type-mapping>
          ??? </metadata>
          ? </local-tx-datasource>
          </datasources>

          4.在JSP中進(jìn)行測試:

          <%@ page contentType="text/html; charset=GBK" %>
          <%@ page import="javax.sql.DataSource" %>
          <%@ page import="javax.naming.*" %>
          <html>
          <head>
          <title>
          index
          </title>
          </head>
          <body bgcolor="#ffffff">
          <%
          ?? DataSource datasource = null;
          try
          ?? {
          ???? InitialContext initialContext = new InitialContext();
          ???? datasource = (DataSource) initialContext.lookup("java:/MySqlDS");
          ???? if (datasource == null) {
          ?????? out.print("null");
          ???? }else {
          ?????? java.sql.Connection con = datasource.getConnection();
          ?????? java.sql.ResultSet rs = con.createStatement().executeQuery("select * from MYTABLE");
          ?????? while (rs.next()) {
          ???????? out.print("<BR>---------");
          ?????? }
          ???? }
          }catch (Exception e) {
          ? out.print("" + e);
          ? e.printStackTrace();
          }
          %>

          5.訪問該JSP的時候總是出現(xiàn):

          javax.naming.NameNotFoundException: MySqlDS not bound

          JNDI名換成了java:comp/env/jdbc/MySqlDS,java:comp/env/MySqlDS, jdbc/MySqlDS, MySqlDS 這些都不行,都是出現(xiàn)沒有綁定的錯誤.

          這個問題困擾了我兩天,到處搜索相關(guān)JBOSS下的數(shù)據(jù)源配置,找出一大把,結(jié)果一看全都是一樣的文章,只是在不同的網(wǎng)站出現(xiàn)而已,我不得不感慨:天下文章一大抄!! 還到各大論壇發(fā)貼子, 未果, 都不知道那些人到底有沒有真正的配置過這些東西, 不過在網(wǎng)上折騰了兩天還是找到一點點線索, 通過反復(fù)的窮舉試的測試, 終于解決了問題.(本來寫這個貼子是為了貼出來問大家的,不過在寫的過程中解決了問題,所以就一并寫下來, 以讓后來者不必寫這些彎路)

          在網(wǎng)上的貼子都是說配置*-ds.xml文件時, JBOSS使用的是本地JNDI, 也就是說在JBOSS容器里才能看到和使用這個JNDI, 按這種說法, 我在JSP里查找那個數(shù)據(jù)庫就沒有問題呀, 不明白!

          即然JBOSS提供了本地的JNDI, 那也可以設(shè)成和Weblogic一樣的那種JNDI, 不讓JBOSS加上那些莫名其妙的前綴了, 因此在mysql-ds.xml的加入<use-java-context>false</use-java-context><jndi-name>MySqlDS</jndi-name>下面, 這樣就可以直接通過MySqlDS做為JNDI名來查尋這個數(shù)據(jù)源了,JSP代碼就改為initialContext.lookup("MySqlDS");

          mysql-ds.xml文件既為:

          <?xml version="1.0" encoding="UTF-8"?>
          <datasources>
          ? <local-tx-datasource>
          ??? <jndi-name>MySqlDS</jndi-name>
          ??? <use-java-context>false</use-java-context>
          ??? <connection-url>jdbc:mysql://127.0.0.1:3306/testdb</connection-url>
          ??? <driver-class>com.mysql.jdbc.Driver</driver-class>
          ??? <user-name>root</user-name>
          ??? <password>root</password>
          ??? <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
          ??? <metadata>
          ?????? <type-mapping>mySQL</type-mapping>
          ??? </metadata>
          ? </local-tx-datasource>
          </datasources>

          還有就是通過現(xiàn)在的方式是可以查尋了, 不過我還不知道使用java:/前綴來查尋數(shù)據(jù)源的方式到底是什么原因?qū)е洛e誤........

          ...以上方式是配置Global JNDI, 最后我才發(fā)現(xiàn)自已犯了一個白癡錯誤: 我把..\default\lib下的jboss-*.jar文件拷貝到了我的WAR包的WEB-INF\lib中去了. 在運行過程中用的就是這個lib中的jar包了, 把這些包去掉去加上java:/前綴就可以正常查找本地JNDI了. 使用自已WAR包中的jboss-*.jar包可能會導(dǎo)致ClassLoader的變化, 不能找到相應(yīng)的容器中的JNDI配置吧.糾纏我?guī)兹斓穆闊[平了,我心釋然~~~


          posted on 2006-04-14 10:03 MEYE 閱讀(973) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 商洛市| 凌海市| 沅陵县| 寿宁县| 视频| 西充县| 宁都县| 彰化市| 阿图什市| 阜新市| 如皋市| 定远县| 会昌县| 天长市| 张掖市| 腾冲县| 汝阳县| 乐安县| 合作市| 田东县| 仪征市| 科技| 遂平县| 滦平县| 蕲春县| 民乐县| 滕州市| 井研县| 且末县| 榆树市| 扶风县| 巴彦淖尔市| 闽侯县| 龙陵县| 云阳县| 华阴市| 洛川县| 饶平县| 永善县| 治县。| 兰西县|