win2k环境下的JBOSS开发实践

说明: 此节针对 ejb 开发初学者,主要是手动配置一个最基本的基于文本开发的环境,让初学者从头开始编写各类程序和配置文件,

以更清楚的了解 EJB 开发和部署的步聚与原理。这是作者在学习 EJB 开发时的一个总结,欢迎指正。作者联系地址址: josserchai@yahoo.com

一、需求软件列表及下载地址

1、  Sun Java SDK ,我们采用的版本为: j2sdk1.4.1_01 ,下载地址为: http://www.sun.com/download/ ,下载后的文件名为:

 j2sdk-1_4_1_01-windows-i586.exe 2 JBOSS ,一个免费的 EJB 容器。我们采用版本为: jboss-3.2.1_tomcat-4.1.24

这是一个内部己集成 Tomcat EJB 容器。下载地址为: http://www.jboss.org/ ,下载后的文件名为:

 jboss-3.2.1_tomcat-4.1.24.zip 3 注意:作者只保证在以上软件版本下以下步聚成功,对于其它的版本也应相同,

但作者没有求证。以下步聚请严格按照执行。

二、安装所需软件

1、  安装 SDK C:/j2sdk1.4.1_01 ;方法为:双击执行下载的 j2sdk-1_4_1_01-windows-i586.exe 文件,选择安装目录为

 C:/j2sdk1.4.1_01 ,其它默认即可。

2、  安装 JBOSS ;方法为:将下载的 jboss-3.2.1_tomcat-4.1.24.zip 文件解压到任意一个目录,解压后会在此目录中产生

一个 jboss-3.2.1_tomcat-4.1.24 文件夹,在此文件夹下有一系列的文件和文件夹。然后在 C 盘根目录下建一个 JBOSS 目录,

并将刚才解压后 jboss-3.2.1_tomcat-4.1.24 文件夹下的一系列文件和文件夹全都拷贝到 C /JBOSS 目录下。即将 JBOSS

安装到了 C:/JBOSS 目录中。

3 以上两个步聚进行后,文件夹如下图所示:

 

 

三、配置运行环境及测试程序目录

一、设置环境变量

1、  设置 JAVA_HOME 系统变量:在 win2k 下方法为,在桌面上右键点击“我的电脑”,选择属性,然后在弹出的页面上点“高级” -> “环境变量”,然后在弹出的页面中“系统变量”下点击“新建”,然后在弹出的窗口中“变量名 (N) 输入“ JAVA_HOME ”,在“变量值 (V) ”一栏中输入“ C:/j2sdk1.4.1_01

2 以同样的方法设置: JBOSS_HOME 值为: C:/JBOSS

3 以同样的方法在上面地方将 Path 的值后追加:以下内容:“ C:/j2sdk1.4.1_01/bin;C:/JBOSS/bin ”

二、创建程序目录

1 C:/JBOSS 下新建一个 myproject 目录,用于存放自己的所有项目。

myproject 目录下新建三个目录:一个是 jsp 目录,其下用于存放所有的 jsp 文件和 servlet 文件及其它的 html

2、   image 文件等;一个是 ejb 目录,用于存放所有即将发布的 EJB 类文件;一个是 src 目录,用于存放所有的 java 源文件。

3、  jsp 目录下新建一个目录,并命名为: hello.war ,用来发布 WEB 程序,然后再在此目录下新建一系列文件夹:

即在 hello.war 下新建 WEB-INF (大写)文件夹,再在 WEB-INF 下新建 classes 文件夹,再在 classes 文件夹下新建

一个 hello 文件夹。

4、  ejb 目录下新建一个 client 目录和一个 hello.jar 目录,分别用于存放 EJB 客户端和要发布的服务器端类。然后再在

 client 目录下新建一个 hello 目录,再在此目录下新建一个 ejb 目录。然后在 hello.jar 目录下新建一个 hello 目录和一个META-INF( 大写 ) 目录,并在 hello 目录中新建一个 ejb 目录。

5 以上过程结束后,形成的目录结构如下图所示: 

 

说明: 此节针对 ejb 开发初学者,主要是手动配置一个最基本的基于文本开发的环境,让初学者从头开始编写各类程序和配置文件,

以更清楚的了解 EJB 开发和部署的步聚与原理。这是作者在学习 EJB 开发时的一个总结,欢迎指正。作者联系地址址: josserchai@yahoo.com

一、需求软件列表及下载地址

1、  Sun Java SDK ,我们采用的版本为: j2sdk1.4.1_01 ,下载地址为: http://www.sun.com/download/ ,下载后的文件名为:

 j2sdk-1_4_1_01-windows-i586.exe 2 JBOSS ,一个免费的 EJB 容器。我们采用版本为: jboss-3.2.1_tomcat-4.1.24

这是一个内部己集成 Tomcat EJB 容器。下载地址为: http://www.jboss.org/ ,下载后的文件名为:

 jboss-3.2.1_tomcat-4.1.24.zip 3 注意:作者只保证在以上软件版本下以下步聚成功,对于其它的版本也应相同,

但作者没有求证。以下步聚请严格按照执行。

二、安装所需软件

1、  安装 SDK C:/j2sdk1.4.1_01 ;方法为:双击执行下载的 j2sdk-1_4_1_01-windows-i586.exe 文件,选择安装目录为

 C:/j2sdk1.4.1_01 ,其它默认即可。

2、  安装 JBOSS ;方法为:将下载的 jboss-3.2.1_tomcat-4.1.24.zip 文件解压到任意一个目录,解压后会在此目录中产生

一个 jboss-3.2.1_tomcat-4.1.24 文件夹,在此文件夹下有一系列的文件和文件夹。然后在 C 盘根目录下建一个 JBOSS 目录,

并将刚才解压后 jboss-3.2.1_tomcat-4.1.24 文件夹下的一系列文件和文件夹全都拷贝到 C /JBOSS 目录下。即将 JBOSS

安装到了 C:/JBOSS 目录中。

3 以上两个步聚进行后,文件夹如下图所示:

三、配置运行环境及测试程序目录

一、设置环境变量

1、  设置 JAVA_HOME 系统变量:在 win2k 下方法为,在桌面上右键点击“我的电脑”,选择属性,然后在弹出的页面上点“高级” -> “环境变量”,然后在弹出的页面中“系统变量”下点击“新建”,然后在弹出的窗口中“变量名 (N) 输入“ JAVA_HOME ”,在“变量值 (V) ”一栏中输入“ C:/j2sdk1.4.1_01

2 以同样的方法设置: JBOSS_HOME 值为: C:/JBOSS

3 以同样的方法在上面地方将 Path 的值后追加:以下内容:“ C:/j2sdk1.4.1_01/bin;C:/JBOSS/bin ”

二、创建程序目录

1 C:/JBOSS 下新建一个 myproject 目录,用于存放自己的所有项目。

myproject 目录下新建三个目录:一个是 jsp 目录,其下用于存放所有的 jsp 文件和 servlet 文件及其它的 html

2、   image 文件等;一个是 ejb 目录,用于存放所有即将发布的 EJB 类文件;一个是 src 目录,用于存放所有的 java 源文件。

3、  jsp 目录下新建一个目录,并命名为: hello.war ,用来发布 WEB 程序,然后再在此目录下新建一系列文件夹:

即在 hello.war 下新建 WEB-INF (大写)文件夹,再在 WEB-INF 下新建 classes 文件夹,再在 classes 文件夹下新建

一个 hello 文件夹。

4、  ejb 目录下新建一个 client 目录和一个 hello.jar 目录,分别用于存放 EJB 客户端和要发布的服务器端类。然后再在

 client 目录下新建一个 hello 目录,再在此目录下新建一个 ejb 目录。然后在 hello.jar 目录下新建一个 hello 目录和一个

 META-INF( 大写 ) 目录,并在 hello 目录中新建一个 ejb 目录。

5 以上过程结束后,形成的目录结构如下图所示: 

四、编写测试程序及相关脚本

一、  测试 JBOSS 安装成功与否,方法如下:进入 C /JBOSS 目录中,执行 run.bat c all 启动具有全部功能的 JBOSS 配置服务器。屏幕经过一会滚动后不再滚动。这时启动 IE 输入: http://localhost:8080/jmx-console/index.jsp  即可看到 IE 中出现一系列列表,即表明 JBOSS 启动成功。此时可在启动 JBOSS DOS 窗口上按 Ctrl+C 关闭 JBOSS 服务器。

二、  进入 C:/JBOSS/myproject/jsp/hello.war 目录中,用记事本新建一个 index.jsp 文件,内容如下:

用于测试 jsp 程序 <%@page contentType="text/html; charset=gb2312"%>

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<body bgcolor="#FFFFFF" text="#000000" topmargin="5">

<%

String hello = "Hello world!this created by jsp file!";

out.println(hello);

%>

</body>

</html>

三、 进入 C:/JBOSS/myproject/src 目录,新建一个 HelloWorld.java ,是一个 Servlet 类,内容如下:

package hello;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

public class HelloWorld extends HttpServlet

{

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException

{

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("<hr>");

out.println("Hello World! This is created by Servlet!");

out.println("<hr>");

}

}

到此,我们就建立好了用于测试的 JSP 文件和 Servlet 类,下面将建 HelloWorld 的无状态 SessionBean

四、 进入 C:/JBOSS/myproject/src 目录,新建一个 Hello.java 文件,以实现 EJB Remote 接口,内容如下,

package hello.ejb;

/**

* Remote interface for Enterprise Bean: Hello

* Remote 接口

*/

public interface Hello extends javax.ejb.EJBObject {

/**

* 唯一的方法 hello ,向客户端返回问候。

*/

public String hello() throws java.rmi.RemoteException;

}

同样在此目录中新建一个 HelloLocal.java 文件,实现 Local 接口,内容如下:

package hello.ejb;

import javax.ejb.EJBLocalObject;

public interface HelloLocal extends EJBLocalObject {

public String hello();

}

同样在此目录中新建一个 HelloHome.java 文件,实现 Home 接口,内容如下:

package hello.ejb;

/**

* Home interface for Enterprise Bean: Hello

* Home 接口

*/

public interface HelloHome extends javax.ejb.EJBHome{

/**

* Creates a default instance of Session Bean: Hello

*/

public Hello create() throws javax.ejb.CreateException, java.rmi.RemoteException;

}

同样在此目录中新建一个 HelloLocalHome.java 文件,实现 LocalHome 接口,内容如下:

package hello.ejb;

import javax.ejb.EJBLocalHome;

public interface HelloLocalHome extends EJBLocalHome {

HelloLocal create() throws javax.ejb.CreateException;

}

同样在此目录中新建一个 HelloBean.java ,实现 EJB 类,内 [ 容如下:

package hello.ejb;

/**

* Bean implementation class for Enterprise Bean: Hello

*/

public class HelloBean implements javax.ejb.SessionBean{

private javax.ejb.SessionContext mySessionCtx;

/**

* getSessionContext

*/

public javax.ejb.SessionContext getSessionContext(){

return mySessionCtx;

}

/**

* setSessionContext

*/

public void setSessionContext(javax.ejb.SessionContext ctx){

mySessionCtx = ctx;

}

/**

* ejbActivate

*/

public void ejbActivate(){

}

/**

* ejbCreate

*/

public void ejbCreate() throws javax.ejb.CreateException{

}

/**

* ejbPassivate

*/

public void ejbPassivate(){

}

/**

* ejbRemove

*/

public void ejbRemove(){

}

/**

* 商务方法

*/

public String hello(){

return "Hello,World! this is created by EJB!";

}

}

至此,我们己经将 EJB 类所需的所有的所有类编写好了,下面我们编写用于测试此 EJB 程序的文件,具体来说有两个:

一个是用客户端 Servlet 来调用 EJB ,另一个是用客户端类来调用 EJB 。实现如下:

五、 实现测试 EJB 的程序

进入 C:/JBOSS/myproject/src 目录中,新建一个 HelloServlet.java 文件,用于测试通过 Servlet 调用 EJB 。内容如下:

package hello;

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import javax.ejb.*;

import javax.naming.InitialContext;

import javax.naming.Context;

import hello.ejb.*;

import java.util.*;

public class HelloServlet extends HttpServlet

{

private HelloHome home;

public void init() throws ServletException

{

try

{

String initCtxFactory = getInitParameter(Context.INITIAL_CONTEXT_FACTORY);

String providerURL = getInitParameter(Context.PROVIDER_URL);

Properties env = new Properties();

if(initCtxFactory!=null)

{

env.put(Context.INITIAL_CONTEXT_FACTORY,initCtxFactory);

}

if(providerURL!=null)

{

env.put(Context.PROVIDER_URL,providerURL);

}

Context ctx=new InitialContext(env);

Object objRef = ctx.lookup("Hello");

// 主接口

home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(objRef,hello.ejb.HelloHome.class);

}catch(javax.naming.NamingException ne){

System.out.println("Create Exception caught:"+ne);

throw new ServletException(ne.toString());

}catch(Exception e)

{

throw new ServletException(e.toString());

}

}

public void service(HttpServletRequest req,HttpServletResponse res) throws IOException

{

res.setContentType("text/html");

PrintWriter out =res.getWriter();

out.println("<html><head><title>the first EJB</title></head>");

try{

// 组件接口

Hello bean =home.create();

out.println(bean.hello());

}catch(javax.ejb.CreateException ce){

out.println("Create Exception caught:"+ce);

ce.printStackTrace(out);

}catch(java.rmi.RemoteException re){

out.println("Remote Exception caught:"+re);

re.printStackTrace(out);

}

out.println("</body></html>");

}

}

同样在此目录中,新建一个 HelloClient.java 文件,用于通过客户端类测试 EJB ,内容如下:

package hello.ejb;

import java.util.*;

import java.io.*;

import javax.naming.InitialContext;

import javax.rmi.PortableRemoteObject;

import javax.naming.Context;

import javax.rmi.PortableRemoteObject;

import hello.ejb.*;

public class HelloClient

{

public static void main(String[] args)

{

try

{

//jndi 配置 , 应实现为外部属性文件

Properties env = new Properties();

//config.properties 文件应该放在和 hello 包目录所在目录的同级目录中。即它和 hello 文件夹同在一个文件夹中。

env.load(new FileInputStream("config.properties"));

// Get a naming context

System.out.println(env);

InitialContext ctx = new javax.naming.InitialContext(env);

System.out.println("Got context");

// Get a reference to the Interest Bean

//jboss 默认 jndi 名为 ejb-jar.xml 中的 :ejb-name

Object ref = ctx.lookup("Hello");

System.out.println("Got reference");

// Get a reference from this to the Bean"s Home interface

HelloHome home = (HelloHome)PortableRemoteObject.narrow(ref, HelloHome.class);

// Create an Hello object from the Home interface

Hello hello = home.create();

// call the hello() method

System.out.println(hello.hello());

}catch(Exception e)

{

System.out.println(e.toString());

}

}

}

然后,我们还需增加一个此客户端程序运行时所需的 JNDI 配置文件。方法如下:

进入 : C:/JBOSS/myproject/ejb/client 目录,用记事本新建一个 config.properties 文件,内容如下三行:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

java.naming.provider.url=jnp://192.168.10.114:1099

六、 编写服务器端的配置文件,

首先进入 C:/JBOSS/myproject/jsp/hello.war/WEB-INF 目录,用记事本创建一个 web.xml 文件,用于配置 servlet ,内容如下:

<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<servlet>

<servlet-name>HelloWorld</servlet-name>

<display-name>HelloWorld</display-name>

<servlet-class>hello.HelloWorld</servlet-class>

</servlet>

<servlet>

<servlet-name>HelloServlet</servlet-name>

<display-name>HelloServlet</display-name>

<servlet-class>hello.HelloServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>HelloWorld</servlet-name>

<url-pattern>/HelloWorld</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>HelloServlet</servlet-name>

<url-pattern>/HelloServlet</url-pattern>

</servlet-mapping>

</web-app>

然后进入 C:/JBOSS/myproject/ejb/hello.jar/META-INF 目录,创建一个 ejb-jar.xml 文件,内容如下:

<?xml version="1.0" encoding="gb2312"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"

"http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar>

<description>This is Hello EJB example</description>

<display-name>helloeEJB</display-name>

<enterprise-beans>

<session>

<display-name>Hello</display-name>

<ejb-name>Hello</ejb-name>

<home>hello.ejb.HelloHome</home>

<remote>hello.ejb.Hello</remote>

<local-home>hello.ejb.HelloLocalHome</local-home>

<local>hello.ejb.HelloLocal</local>

<ejb-class>hello.ejb.HelloBean</ejb-class>

<session-type>Stateless</session-type>

<transaction-type>Container</transaction-type>

</session>

</enterprise-beans>

</ejb-jar>

在此目录中,再建一个 jboss-service.xml 文件,内容如下:

<?xml version="1.0" encoding="gb2312"?>

<jboss>

<enterprise-beans>

<session>

<ejb-name>Hello</ejb-name>

<jndi-name>Hello</jndi-name>

</session>

<secure>true</secure>

</enterprise-beans>

<reource-managers/>

</jboss>

七、 到此为止,我们将所有的测试文件和配置文件己编写完成。

八、 下面我们编写编译这些类文件的脚本程序,进入 C:/JBOSS/BIN 目录下,新建一个 com.bat 文件,内容如下:

set classpath=.;c:/j2sdk1.4.1_01/lib/tools.jar;C:/JBOSS/client/jbossall-client.jar;C:/JBOSS/client/jboss-client.jar

;C:/JBOSS/client/jboss-iiop-client.jar;C:/JBOSS/server/default/lib/jnpserver.jar;C:/JBOSS/client/jnp-client.jar;

C:/JBOSS/client/log4j.jar;C:/JBOSS/client/jboss-j2ee.jar; C:/JBOSS/server/all/lib/javax.servlet.jar

javac %1

同样在此目录新建一个 runclient.bat ,用于运行客户端程序,内容如下:

set classpath=.;c:/j2sdk1.4.1_01/lib/tools.jar;C:/JBOSS/client/jbossall-client.jar;C:/JBOSS/client/jboss-client.jar;

C:/JBOSS/client/jboss-iiop-client.jar;C:/JBOSS/server/default/lib/jnpserver.jar;C:/JBOSS/client/jnp-client.jar;

C:/JBOSS/client/log4j.jar;

C:/JBOSS/client/jboss-j2ee.jar;

C:/JBOSS/server/all/lib/javax.servlet.jar

java %1

五、编译和运行测试程序

1 进入 C:/JBOSS/myproject/src 目录中,运行 :

com *.java

将产生一系列 .class 文件。

3、  将产生的 HelloWorld.class HelloServlet.class 拷贝到 C:/JBOSS/myproject/jsp/hello.war/WEB-INF/classes/hello

目录中。

4、  将产生的 HelloHome.class HelloClient.class Hello.class 文件放入 C:/JBOSS/myproject/ejb/client/hello/ejb

目录中

5、  将产生的 Hello.class HelloBean.class HelloHome.class HelloLocal.class HelloLocalHome.class

放入 C:/JBOSS/myproject/ejb/hello.jar/hello/ejb 目录中。

至此,我们己经完成了所有类的编译,并将它们放入到适当的地方,目前为止,文件和目录分布结构如下图所示:
 
这时,我们将 myproject ejb 目录中的 hello.jar 目录和 jsp 下的 hello.war 目录拷贝到

C:/JBOSS/server/all/deploy 下。

这时启动 JBOSS 的工作台自动会发布此两个目录。我们便可以测试了。

启动 JBOSS

run.bat –c all

IE 打开 http://localhost:8080/hello/index.jsp 测试 JSP 文件

IE 打开 http://localhost:8080/hello/HelloWorld 测试 Serlvet

IE 打开 http://localhost:8080/hello/HelloServlet 测试用 Servlet 调用 EJB

然后进入

C:/JBOSS/myproject/ejb/client 运行:

Runclient hello/ejb/HelloClient

如下图所示:即成功了!具体目录结构及源代请见附件 myproject.rar
 



基于 win2k环境下的JBOSS开发实践 

        之二、数据库连接池的配置与测试

说明:此节是在上一节基础之上写的,上一节中我们把JBOSS服务器配置好,并测试通过了。这一节我们来看看怎么样在JBOSS中用JspServlet连结数据库,并使用它的连接池,你一定要在看完上节后再看这一节。作者联系地址:josserchai@yahoo.com

一、配置MySQL数据库
1、安装好mysql数据库,这个很简单吧,直接上www.mysql.org上下一个,然后直接安装即可,如我就是把mysql安装在C:/mysql
录下的。设置用户为root,密码为空。
2、在mysql中创建一个数据库,名字为:test;再在此库中创建一个表,表名为tree。使用脚本如下:
create database test;
create table tree(
nodeid int(11) NOT NULL,
nodetext varchar(60),
primary key (`nodeid`)
)
3、然后再此表中插入两条数据
use test;
insert into tree values('1','测试数据1');
insert into tree values('2','测试数据2');
4、下载并安装mySQLJDBC驱动程序,去www.mysql.org下载吧。下载后的文件名为:mysql-connector-jdbc-3.0.10-stable.zip
winzip解开,找到其中mysql-connector-jdbc-3.0.10-stable目录中的mysql-connector-java-3.0.10-stable-bin.jar文件,
把它拷贝到JBOSS安装目录下的Server下的lib目录中,即copyC:/JBOSS/server/all/lib目录中(注意,我们这里采用的是JBOSS
具有全部功能的启动方式,JBOSS默认有三个启动方式,用run -c <方式>来启动,这三种方式是:all,具有全部JBOSS服务器
功能;efault,这是默认的方式;minimal,这是最小配置方式。这三种方式分别对就于安装目录下的Server目录听all ,default
minimal目录)。同时我们要注意:在JBOSS的安装目录下C:/JBOSS/下还有一个lib目录即C:/JBOSS/lib目录,这个目录中存放的是
JBOSS服务器启动时所需的所有jar包,你不能将你的任何外部jar包放入此目录。如果你想启动default,则需将jdbc驱动程序放入
C:/JBOSS/server/default/lib目录中。
5、配置JBOSS的数据库配置文件:在C:/JBOSS/server/all/deploy目录中新建一个mysql-ds.xml文件,注意,文件名一定要以
-(中划线)ds结尾,此xml文件的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>MySql</jndi-name>
    <connection-url>jdbc:mysql://10.0.0.18:3306/test</connection-url>
    <driver-class>org.gjt.mm.mysql.Driver</driver-class>
    <user-name>root</user-name>
    <password></password>
  </local-tx-datasource>
</datasources>
解说一下上面的内容:
<jndi-name>表示的是jndi名称,就是呆会在程序中查找jndi名称要用的(还记得上节中我们用的查找ejbjndi吧,就是那个,
只不过这个是查找数据库连接池的);<connection-url>是连接字符串,前面是固定的后面紧跟的是你的数据库所在的IP地址及
mysql默认端口,然后跟的是数据库名如test<driver-class>是固定的数据库驱动类库;
<user-name>是用于连接数据库的用户名,我这里用的是root,你可以用其它的
<password>是上面用户的密码,我的root用户是空密码。
一定要注意这个文件的名称和存放的位置是:C:/JBOSS/server/all/deploy/mysql-ds.xml
6、编写测试用的jsp文件。
在上一节的C:/JBOSS/myproject/jsp/hello.war目录中,新建一个testmysql.jsp文件,内容如下:
<%@page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>测试MySql数据库</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page import = "javax.sql.DataSource"%>
<%@page import = "javax.naming.InitialContext"%>
<%@page import="java.sql.*"%>
<body>
<h3>测试MySql数据库</h3>
<%
InitialContext ctx = new InitialContext(); 
DataSource ds = (DataSource)ctx.lookup("java:/MySql");//这里要和mysql-ds.xml中对应
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * FROM tree");
while ( rs.next() ){
 out.println(rs.getString("nodetext") + "<br>");
}
conn.close();
%>
</body>
</html>
然后,把此文件所在的目录hello.war拷贝到C:/JBOSS/Server/all/deploy/目录中,如果你在上一节中己经考贝了此目录到此,则只
需把testmysql.jsp文件拷贝过来即可以了。
7、测试JSP连接数据库
重新启动JBOSS服务器,run -c all,如果你的服务器在你拷贝JDBC驱动程序到server/all/lib目录中之前己经运行,你一定要重启服
务器才行。然后在IE或其它浏览器中输入:http://localhost:8080/hello/testmysql.jsp,看看出来什么了,是不是有两行数据?
对了,这就对了。至于ServletEJB中使用数据库连接池的方法也是一样,这个我就不写了。自己去测试一下吧。
二、配置SQL Server2000数据库
配置SQL server数据库,并使用它的连接池过程基本一样的,我就写的简略了一些:过程如下:
1、安装一个SQL Server 2000数据库,或你己经有了在其它电脑上也可以。设置一个用户用于连接它,我这里用sa,密码为空。
2、运行SQL Server客户端,运行以下脚本,生成数据库及表和插入数据:
create database test
go
create table tree(
nodeid int primary key,
nodetext varchar(60)
)
go
insert into tree values('1','SQL Server测试数据1')
go
insert into tree values('2','SQL Server测试数据2')
go
3、下载并安装SQL ServerJDBC驱动程序,下载地址为:
http://www.microsoft.com/downloads/details.aspx?FamilyID=86212d54-8488-481d-b46b-af29bb18e1e5&Dis
playLang=en下载后是一个可执行的安装包,直接运行它,默认安装到C:/Program Files/Microsoft SQL Server 2000 
Driver for JDBC下面。
4、安装好后,把C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib目录中的三个jar文件
msbase.jarmssqlserver.jarmsutil.jar)拷贝到C:/JBOSS/server/all/lib目录中。
5、配置JBOSS使用MSSQL2k的配置文件,在C:/JBOSS/server/all/deploy目录中新建一个文件命名为:mssql-ds.xml
其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>MSSQL</jndi-name>
    <connection-url>jdbc:microsoft:sqlserver://10.0.0.18:1433;DatabaseName=test</connection-url>
    <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
    <user-name>sa</user-name>
    <password></password>
  </local-tx-datasource>
</datasources>
解说就不必了,各项内容和上面mysql的基本差不多。此文件一定要放入C:/JBOSS/server/all/deploy目录中。
6、编写JSP测试文件,在在上一节的C:/JBOSS/myproject/jsp/hello.war目录中,新建一个testmssql.jsp文件,内容如下:
<%@page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>测试SqlServer2K数据库</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@page import = "javax.sql.DataSource"%>
<%@page import = "javax.naming.InitialContext"%>
<%@page import="java.sql.*"%>
<body>
<h3>测试SqlServer2K数据库</h3>
<%
InitialContext ctx = new InitialContext(); 
DataSource ds = (DataSource)ctx.lookup("java:/ MSSQL ");//这里要和mysql-ds.xml中对应
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement(); 
ResultSet rs = stmt.executeQuery("SELECT * FROM tree");
while ( rs.next() ){
 out.println(rs.getString("nodetext") + "<br>");
}
conn.close();
%>
</body>
</html>
然后,把此文件所在的目录hello.war拷贝到C:/JBOSS/Server/all/deploy/目录中,如果你在上一节中己经考贝了此目录到此,
则只需把testmssql.jsp文件拷贝过来即可以了。
7、测试JSP连接数据库
重新启动JBOSS服务器,run -c all,如果你的服务器在你拷贝JDBC驱动程序到server/all/lib目录中之前己经运行,你一定要
重启服务器才行。然后在IE或其它浏览器中输入:http://localhost:8080/hello/testmssql.jsp,就可以看致到有两行数据输出。
    总结,在上面我们给出了如何在JBOSS中配置和使用不同数据库连接池的方法并给出了测试程序。在下面一节中,我将给出如何在
EJB中连接数据库并给出一个示例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值