软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
整合JBoss 3.x 和MS SQL Server 2000

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

准备工作

  1. 安装JBoss 3.xMS SQL Server 2000
  2. 下载Microsoft SQL Server 2000 Driver for JDBC
    http://www.microsoft.com/downloads/details.aspx?familyid=07287b11-0502-461a-b138-2aa54bfdc03a&displaylang=en#filelist
  3. 安装MS SQL Server 2000sp3补丁包( http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn#filelist )。注意,不升级的话是无法正确连接到MS SQL Server 2000上的,会出现Error establishing socket错误。

 

开始整合

 

1.         安装好Microsoft SQL Server 2000 Driver for JDBC后,在其安装目录\lib 下有三个包:msbase.jarmssqlserver.jarmsutil.jar。把他们拷贝到%JBoss安装目录%\server\default\lib

2.         Jboss目录下的docs\examples\jca\中的mssql-ds.xmlmssql-xa-ds.xml拷贝到\server\default\deploy\目录下,并做相应修改(红色部分)

mssql-ds.xml

<datasources>

   <local-tx-datasource>

       <jndi-name>MSSQLDS</jndi-name>      
       <connection-url>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Northwind</connection-url>

       <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>

       <user-name>sa</user-name>

       <password></password>

   </local-tx-datasource>

</datasources>

 

mssql-xa-ds.xml:

<datasources>

   <xa-datasource>

       <jndi-name>MSSQLXADS</jndi-name>

       <xa-datasource-class>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</xa-datasource-class>

       <xa-datasource-property name="ServerName">localhost</xa-datasource-property>

       <xa-datasource-property name="DatabaseName">Northwind</xa-datasource-property>

       <xa-datasource-property name="SelectMethod">cursor</xa-datasource-property>

       <!-- not sure if these should be here-->

       <user-name>sa</user-name>

       <password/>

   </xa-datasource>

</datasources>

整合测试


1.        
编写SessionBean,在其中添加如下方法:

public String testDS() {

        String resl = null;

        try {

            Properties p = new Properties();

            p.put(Context.INITIAL_CONTEXT_FACTORY,  "org.jnp.interfaces.NamingContextFactory");

            p.put(Context.PROVIDER_URL, "jnp://localhost:1099");

            Context ctx = new InitialContext(p);

 

            resl += "testing the database...\n";

            javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:/MSSQLDS");     
            
//
这个”MSSQLDS”必须和mssql-ds.xml文件中的jndi-name保持一致,否则会出错

            java.sql.Connection conn =null;

            java.sql.Statement st=null;

            java.sql.ResultSet rs=null;

            try {

                conn = ds.getConnection();

                st = conn.createStatement();

                String sqlStr = "select * from Employees";

                rs = st.executeQuery(sqlStr);

                while (rs.next()) {

                    resl += rs.getString("FirstName") + " " +rs.getString("LastName")+"\n";

                }

            } catch (Exception e) {

            }

            finally {

                    if(rs!=null) rs.close();

                    if(st!=null) st.close();

                    if(conn!=null) conn.close();

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return resl;

    }


2.        
部署EJB


3.        
测试SessionBean

public class test{

       public void run() {

        Properties p = new Properties();

        p.put(Context.INITIAL_CONTEXT_FACTORY,  "org.jnp.interfaces.NamingContextFactory");

        p.put(Context.PROVIDER_URL, "jnp://localhost:1099");

        try {

            Context ctx = new InitialContext(p);

            Object obj = ctx.lookup("testBean");

            testHome home = (testHome) PortableRemoteObject.narrow(obj, testHome.class);

            test t = home.create();

 

            System.out.println("test...");

            String str = t.testDS();

            System.out.println("received: \n" + str);

            System.out.println("test finished!\n");

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

 

    public static void main(String[] args) {

        new test().run();

    }

}

 




相关文章

相关软件