根据网上传授的..步骤,终于配出来了.
1.把JBOSS_HOME\docs\examples\jca\下的对应的数据库配置,文件COPY到
JBOSS_HOME\\server\default\deploy\下. 我配的是MYSQL.所以COPY的是mysql-ds.xml
至于里面的内容.相信你一看也知道.....改成你对应的配置..我的是这样的
<datasources>
<local-tx-datasource>
<jndi-name>MySqlDS</jndi-name>
<connectionurl>jdbc:mysql://127.0.0.1:3306/test</connectionurl>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<use-java-context>false</use-java-context>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>
org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter
</exception-sorter-class-name>
<new-connection-sql>
select * from books
</new-connection-sql>
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
为了省事,把注释的去掉了..^--^
2 . 修改jboss-4.2.3.GA\server\default\conf\下的standerjbosscmp-jdbc.xml中的位于<datasource>下的
<!-- optional since 4.0 <datasource-mapping>Hypersonic SQL</datasource-mapping> -->
注释去掉..并且把Hypersonic SQL 改成上面对应
<type-mapping>mySQL</type-mapping>
中的mySQL.. 注意大小写..
3 . 不忘了把你的驱动包放到对应的JBOSS 应用的lib中哟..我JBOSS用的是DEFAULT所以 放到了.default\conf\lib下..
4.编写代码..测试...
Properties properties = new Properties(); properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); properties.setProperty(Context.URL_PKG_PREFIXES, "jboss.naming:org.jnp.interfaces"); properties.setProperty(Context.PROVIDER_URL, "localhost:1099"); Context cont = new InitialContext(properties); Object obj= cont.lookup("java:/MySqlDS"); DataSource ds =(DataSource)obj; Connection con =ds.getConnection(); Statement stmt = con.createStatement(); ResultSet rs =stmt.executeQuery("select * from books"); while(rs.next()){ System.out.println(rs.getString(1)+" " +rs.getString (2)); } rs.close(); stmt.close(); con.close(); ds=null; System.out.println(" is ok!");
PS : 在上面写代码的时候,还不知道怎么把server\default\conf\jndi.properties文件关联到JBOSS的配置中.....
期待高手解答....
在第一步中,有红线的,如果不配会出现.JNDI NOT BOUND!!