http://www.javayou.com/showlog.jspe?cat_id=-1&log_id=147

解决方案 »

  1.   

    tomcat的文档中有
    JNDI DataSource HOW-TO
    JNDI Resources HOW-TO
    这两个说明,里面讲得很清楚了,而且代码都有。
      

  2.   

    五、在Weblogic中建立MySQL数据库连接池
    1.打开开始菜单中的执行Weblogic目录下的Start Default Server,输入管理密码,本例为”123”,启动Weblogic。
    2.启动”Start Default Console”,弹出浏览器窗口:
    在密码窗口中输入用户名”system” 密码 “123” 进入控制台,在左面菜单中找到”JDBC”项,打开他你会发现子菜单中有一项为”Connection Pools”,右击该项,然后选择 ”Configure a new JDBC Connection Pool...” 配置连接池属性如下表:
    Name MySQL Connection Pool
    URLjdbc: jdbc:mysql://localhost/user  /user为数据库名/
    Driver Class name org.gjt.mm.mysql.Driver 在本例中为MySQL数据库,可以为其它数据库的JDBC驱动
    Properties(key=value):
    port=3306
    user=root
    db=board
    password=123
    server=fancy fancy为HOST名字
    书写顺序可以自已随意定,完成后点击Creat按钮。
    如果是ORACLE数据库,前两项是这样的,帐号根据您的数据库设置:
    URL : jdbc:weblogic:oracle 
    Driver Classes : weblogic.jdbc.oci.Driver 
    Properties (key=value): user=xixi 
    password=haha server=your_tnsname
     
    3.点击Targets标签,选中myserver,把它移入Chosen项,点击Apply。如果你配置有错,旁边的惊叹号会闪烁提示你在此处填写有错,需要更改。
    4. ”JDBC”项中选中Data Sources,右击该项,然后选 ”Configure a new JDBC Connection Pool...” 配置数据源。
    属性如下表
    Name: MySQL Data Source
    JNDI Name: mysql
    Pool Name: MySQL Connection Pool 
    剩下的保持默认就可以,点“Creat”。
     
    5.点击“Targets”标签,选中“myserver”,把它移入“Chosen”项,点击“Apply”。
     
    6.关闭控制台和Weblogic服务。现在连接池和数据源已经建好了。
    在Jbuider中测试:
    1.打开Jbuilder,新建一个名为hello项目,并在wizard的第2步中,Required Libraries中添
    加上Weblogic 6.1。
    2.新建一个名为HelloWorld的EJB Moudle。
    3.新建一个Enterpris JavaBean 1.x,选择HelloWorld组,点击下一步。package选择hello,
     Class name为“FistBean”,options选择Container managed persistence EJB 1.1 entit
    y bean 然后点下一步。点击Finish。
    4.项目下共有3个文件分别是
    First.java,FirstHome.java,FirstBean.java
    在First.java中加入
    public java.lang.String getAddr() throws RemoteException;
    public java.lang.String getName() throws RemoteException;
    public void setAddr(java.lang.String addr) throws RemoteException;
    public void setName(java.lang.String name) throws RemoteException;
    在FistBean.java中
    先删掉其中的:
    public String ejbCreate() throws CreateException {
    /**@todo: Implement this method*/
    return null;
    }
    public void ejbPostCreate() throws CreateException {
    }
    加入
    public String name;
    public String addr;
    public String ejbCreate(String name,String addr) throws CreateException, RemoteE
    xception {
    setName(name);
    setAddr(addr);
    return null;
    }
    public String ejbCreate(String name) throws CreateException, RemoteException {
    return ejbCreate(name,null);
    }
    public void ejbPostCreate(String name,String addr) throws CreateException, Remot
    eException {

    public void ejbPostCreate(String name) throws CreateException, RemoteException {
    }
    public void setName(String name){
    this.name = name;
    }
    public void setAddr(String addr){
    this.addr = addr;
    }
    public String getName(){
    return this.name;
    }
    public String getAddr(){
    return this.addr;
    }
    在FirstHome.java中
    删掉:
    public First create() throws RemoteException, CreateException;
    加入:
    public First create(String name) throws CreateException, RemoteException;
    public First create(String name,String addr) throws CreateException, RemoteExcep
    tion;5.点击左面菜单中的HelloWorld,然后双击下面的First, 点击右面窗体下面的Resource Re
    ferences标签,点击面板上的Add按钮,在跳出的输入对话框中输入”First”点ok,选择typ
    e为java.sql.DataSource。选中First,在下面JNDI Name框中输入hello.FirstHome。选中下
    面的cmp选项。
    在WebLogic6.x properties标签中,第一行(data-source-name)中加入mysql
    6.展开First,双击cmp1.1,table(s)输入”test”,容器管理表内容如下 
    isCMP isPK Field TypeColumn Name(s)Column Type
    选中 选中 name namevarchar(15)
    选中 不选 addr addrvarchar(50)
    7.右击EJB Deployment Descriptor下的JDBC1 DataSources 新建一个名为mysql的数据源,
    配置如下:
    JNDI name mysql
    URLjdbc: jdbc:mysql://localhost/test
    User name root
    Password
    Driver class name org.gjt.mm.mysql.Driver
    配置完成点击“Test Connection”如正确则显示
    Attempting to connect to database...
    Connection succeeded.
    如果显示下面的信息
    Attempting to connect to database...
    Driver not on classpath.
    Add the driver to the classpath using the Set Classpath command.
    则表示数据库的jdbc驱动并不在classpath里,把数据库的驱动添加到项目的Required Libr
    aries中去。
    8.双击左边的HelloWorld,然后点击右面窗口中的 EJB DD Source ,然后选weblogic-cmp-r
    dbms-jar.xml找到 datasource修改为mysql.
    9.保存后按Ctrl+F9编译,应该没有问题。
    10.新建一个Test EJB Client 全部采用默认设置即可。
    11.再main方法里面找到 FistTestClient1 client = new FistTestClient1();
    然后再后加入下面的代码:
    First ff=client.create("testName","testAddr");
    try {
    System.out.println(ff.getName());
    System.out.println(ff.getAddr());
    }
    catch (java.rmi.RemoteException ex) {
    ex.printStackTrace();
    }
    然后,保存编译。
    12.右击HelloWorld,选RUN, 完成后再选Deploy Options for “HelloWorld.jar”;Deploy
    13.完成后start default console,用户名密码分别是 system和12345678 在控制台的左面
    菜单里打开EJB选中HelloWorld,然后再右面窗口中选Targets 把myserver变成Chosen .
    14.回到jbuilder中把运行中的Server停掉,然后再重新右击HelloWorld,选RUN。
    15.右击FistTestClient1.java 点RUN,如显示下面的信息则表示运行成功
    D:\JBuilder6\jdk1.3.1\bin\javaw -classpath "C:\java\jbuilder\hello\jbproject;D:\
    bea\wlserver6.1\lib\weblogic.jar;D:\JBuilder6\lib\jbuilder.jar;D:\JBuilder6\lib\h
    elp.jar;D:\JBuilder6\lib\gnuregexp.jar;D:\JBuilder6\jdk1.3.1\demo\jfc\Java2D\Java
    2Demo.jar;D:\JBuilder6\jdk1.3.1\jre\lib\i18n.jar;D:\JBuilder6\jdk1.3.1\jre\lib\ja
    ws.jar;D:\JBuilder6\jdk1.3.1\jre\lib\rt.jar;D:\JBuilder6\jdk1.3.1\jre\lib\sunrsas
    ign.jar;D:\JBuilder6\jdk1.3.1\lib\dt.jar;D:\JBuilder6\jdk1.3.1\lib\htmlconverter.
      

  3.   

    com.javachange.dbConnectionBroker是个比较好的免费数据库连接池