javafever


我无富贵命,所喜性天然。壁立三千字,家无半吊钱。蝉鸣深巷里,人语短屋前。收拾英雄气,耕作两分田。

2005年8月9日 #

OpenGL学习笔记(二)

关于MinGW中的glut库

Mark Kilgard提供的glut库解压后包含一个.h,一个.def,一个.lib和一个.dll文件。将.h拷贝到MinGW的include目录下,.dll拷贝到windows的系统目录下(windows\system32),.def和.lib文件在eclipse下面不太好使,可以使用reimp工具将.lib文件转换成.a文件。命令如下:
reimp glut32.lib

这样,就会在同一目录下生成一个glut32.def和一个libglut32.a文件,将libglut32.a拷贝到MinGW的lib目录下。同时记得要删除原来的glut库,否则link时可能会出错。

glut主程序框架


#include <GL/glut.h> //头文件。

int main(int argc, char** argv) {
    //初始化glut并建立窗口
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SIGNLE | GLUT_RGB);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(200, 200);
    glutCreateWindow(windowTitle);
   
    //注册glut的callback函数
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutIdleFunc(idle);
    glutKeyboardFunc(keyboard);
   
    //启用光线、深度测试等
    glEnable(GL_LIGHT0);
    glEnable(GL_LIGHTING);
    glEnable(GL_DEPTH_TEST);

    //进入glut主循环
    glutMainLoop();

    return 0;
}

posted @ 2006-12-17 23:06 javaFever 阅读(390) | 评论 (0)编辑 收藏

OpenGL学习笔记(一)

安装开发平台

为了保持开发平台的一致性,采用GCC+eclipse作为开发平台。

在Debian Linux下安装GCC和make就可以了。安装了X环境后,系统中就已经包含了OpenGL的头文件和库文件,但是要使用GLUT的话,还需要安装GLUT的包。我使用的是freeglut3。

$sudo  apt - get install gcc make freeglut3 - dev

在Windows下,GCC的解决方案有很多,我使用的是MinGW,可以下载DevCpp,它包括MinGW和一个C/C++的IDE,因为我使用eclipse作为IDE,所以,我使用MinGW的官方开发工具。到MinGW的官方网站上下载以下包:

binutils

gcc-core

gcc-g++

mingw32-make

mingw-runtime

mingw-utils

w32api

最后再下载调试器gdb。

为了能使用Mark Kilgard提供的glut库(http://www.xmission.com/~nate/glut.html),尽量下载最新的官方版本,该glut库要求binutils版本至少是2.16.91。

http://www.mingw.org/MinGWiki/index.php/Glut页面解释了在MinGW下使用Mark Kilgard的GLUT库会出现的问题及解决的办法。

至于Eclipse和CDT的安装很简单,在Linux下和Windows下也没什么区别。需要注意的是:为了让Eclipse能是别到GCC,需要吧GCC的bin目录加入系统路径PATH中,eclipse会自动查找make.exe,而MinGW的Make程序名叫mingw32-make.exe,所以,要么把mingw32-make.exe更名为make.exe,要么指定eclipse使用mingw32-make.exe进行make。

posted @ 2006-12-16 14:39 javaFever 阅读(699) | 评论 (1)编辑 收藏

解决debian更新安装源失败后造成的包依赖问题

最近发现国内的debian安装源服务器很不稳定,想换一个速度快的,结果apt-get update运行失败后,把安装源换回来再重新安装其他包时都会报包依赖错,apt-get update好像起不了作用。研究后发现,删除/var/cache/apt/下的两个bin文件,再apt-get update就可以了。

posted @ 2006-12-13 19:07 javaFever 阅读(1013) | 评论 (0)编辑 收藏

debian etch中java显示中文

知道java5.0中中文显示的解决办法是在jre/lib/fonts/目录下建立一个fallback目录,然后把中文字体连接进去就可以了,但我找乐半天都没找到这个目录,最后发现用update-alternative --config java指令便可以得到这个目录的信息。

posted @ 2006-11-28 22:31 javaFever 阅读(343) | 评论 (0)编辑 收藏

qemu在linux和windows下tap网络的配置方法

要让qemu虚拟机和宿主机位于同一个网络中被该网络的其他机器访问,就需要使用TUN/TAP的网络方式来启动qemu虚拟机。具体的启动指令是:
qemu -m 192 -hda disk.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup
如果是在WindowsXP下面,就不需要script=/etc/qemu-ifup这个启动脚本了,直接将tap0换成网桥的名字即可。

第一步,建立一个虚拟网络接口。
在linux下:
1 # mknod /dev/net/tun c 10 200

在Windows下,有开源的虚拟网卡软件,找一个来装好就行了。

第二步,建立网桥。
在linux下:
修改/etc/network/interface配置文件。此处建立一个名为br0的网桥,先桥接上eth0,在启动qemu时,再桥接上tap0。
 1 # /etc/network/interface
 2 # This file describes the network interfaces available on your system
 3 # and how to activate them. For more information, see interfaces(5).
 4 
 5 # The loopback network interface
 6 auto lo
 7 iface lo inet loopback
 8 
 9 # The bridge network interface(s)
10 auto br0
11 iface br0 inet static
12 address 192.168.1.2
13 network 192.168.1.0
14 netmask 255.255.255.0
15 broadcast 192.168.1.255
16 gateway 192.168.1.1
17 bridge_ports eth0
18 bridge_fd 9
19 bridge_hello 2
20 bridge_maxage 12
21 bridge_stp off

在windowsXP下,在网络属性窗口中,直接将要桥接的两块网卡选中,然后点击鼠标右键,选择“桥”菜单即完成桥接。

第三步,建立qemu-ifup脚本启动qemu时调用。
在linux下:
建立/etc/qemu-ifup脚本文件(参见qemu指令的-net参数)
1 #!/bin/sh
2 
3 sudo /sbin/ifconfig $1 0.0.0.0 promisc up
4 sudo /usr/sbin/brctl addif br0 $1
5 sleep 2
WindowsXP在下不用这个脚本,直接把-net的ifname参数设为网桥的名字即可。

posted @ 2006-11-20 23:54 javaFever 阅读(8164) | 评论 (2)编辑 收藏

Debian+XFCE4+JDK5+Netbeans5.5安装完成

趁这两天有点空,终于把本本重装了。
一切都还顺利,只有在安装Netbeans时需要注意必须先安装bc包才能安装Netbeans。

posted @ 2006-11-18 12:12 javaFever 阅读(378) | 评论 (0)编辑 收藏

都江堰腐败归来

周末和几个驴友去了趟都江堰,从东光小区出发到达目的地共80公里,行驶时间4小时,感觉不错,美得达的车就是好。

posted @ 2006-06-04 22:37 javaFever 阅读(274) | 评论 (0)编辑 收藏

不可以只看外表。

好几天来有个问题一个困惑着我。

在Eclipse里使用WTP插件时,总是不能正确的增加一个Server。当点击“WTP Server Actions”工具图标时,Eclipse响应速度极慢,并且,整个WTP相关的图标都会从工具栏上消失掉。

开始我以为这个问题是由于各个插件使用的WTP版本不一致造成的。由于我主要是想使用Exadel Studio 3.5,所以,我按照Exadel网站上的方法,去掉了其它插件的WTP(主要是JBossIDE和WTP本身),仍然不能解决该问题,于是我准备将错误信息发送给Exadel。

令我吃惊的是,当我使用-debug参数启动Eclipse时,一切都正常!我能通过WTP Server Actions图标创建Web服务器,也能通过其它WTP图标启动、停止和部署应用。当我去掉-debug参数时,问题又回来了!看上去非常的不可思议。当我仔细观察使用与不使用-debug参数时Eclipse的区别时,终于发现当使用-debug参数时,Eclipse没有使用Windows主题!难道会与这个相关?看上去风马牛不相及,不过我还是准备试一下。我把%JAVA_HOME%\bin下的javaw.exe.manifest文件删掉,重新启动,一切OK了!

不可思议!于此我得出的结论是:不能只看重外表!

posted @ 2006-04-27 11:19 javaFever 阅读(281) | 评论 (1)编辑 收藏

VMWare 与 qemu 速度比较

刚刚在我的Debian Testing下面比较了一下VMware与qemu安装Windows2000Professional的速度。

我的机器配置是Compaq Presario2500,512M内存,其中32M划给显存。P4 2.4G,ATI340显卡。Linux内核版本为2.6.12-1-386。

为了保持可比性,我的虚拟机都使用256M内存,4G硬盘,NAT方式接入网络。

先 在qemu7.0(没有使用kqemu加速器)下安装,使用的是雨薇在线提供的无值守安装方式(安装完成后会打上一些系统补丁),整个过程(开始安装到出 现Windows开始菜单)耗时1小时48分钟。然后在VMWare5.0下安装,第一次安装到检测设备时死机,然后改成使用Bridge方式,整个安装 耗时28分钟,性能真的是不可相提并论啊。

在一些辅助功能上,VMWare好象也明显好用得多,比如,VMWare下能使用我的视频头等USB设备,而qemu我还不知道怎么挂上USB设备。对显 卡的模拟VMWare更是没话说,最关键的时全屏时由于支持“自动匹配客户机”,所以在我的液晶下就不会出现花屏,qemu好象没办法。

看来自由软件要走的路还很长。

posted @ 2006-01-01 11:49 javaFever 阅读(5766) | 评论 (4)编辑 收藏

2006年打算

1、工作环境全面转向Linux。
2、深入学习设计模式。
3、深入学习Hibernate,并用它做一个实际的项目。
4、深入学习JSF,并用它做一个实际的项目。
5、复习C++,尤其是对泛型加强了解,并与Java泛型对照学习。
6、严格遵守格律写诗,尽量使用平水韵。
7、能流畅的演奏阿宫回忆。

posted @ 2006-01-01 09:56 javaFever 阅读(253) | 评论 (0)编辑 收藏

出差回来了

平安夜,我生日的前一天,从长沙回到成都,走进住所,面对空荡荡的房间,感觉就象从一个客栈到了另一个客栈。

posted @ 2005-12-24 21:42 javaFever 阅读(139) | 评论 (0)编辑 收藏

Debian Testing(Etch) 還不太穩定

最近在幾個Debian版本間(Sarge、Etch、SID和Ubuntu5.10)做了些試驗,感覺Testing還是不太穩定,尤其是GNOME的任務條老是容易死掉,非常郁悶!不過我還是打算用這個版本,只要C++和Java的開發平台能夠穩定下來就沒什麼,至於X窗口,還是用XFCE吧。

Ubuntu的確是個不錯的Linux發行版,感覺應該比RedHat更有前途(其實對它的偏好是因為其基於Debian,愛屋及烏了吧)。以前安裝Ubuntu時,不知道可以使用server參數來只安裝最基本的包。不過Ubuntu到是很穩定,至少不象tesing和sid那樣容易死掉。

有空的話,准備玩玩免免和LFS,不過估計有這閒時間的可能性很小。

在公司裡老板還在要我用Powerbuilder寫程序,因此完全放棄Windows是不可能的,最近試驗了一下qemu,其性能實在不敢恭維,使用VMWare就好得多。

posted @ 2005-12-14 13:14 javaFever 阅读(362) | 评论 (0)编辑 收藏

無題一首

晨起,略有雨氣,忽欲飲,無酒,唯詩爾。

大夢隨風去
清歡捲雨來
欲醉三千日
神魂到蓬萊

posted @ 2005-12-14 13:05 javaFever 阅读(226) | 评论 (0)编辑 收藏

Debian已经安装完毕

把jdk1.5.0_06装上了,不需要使用kernel-headers,不知道是记错了还是现在改正了。 尽量在xfce下干活吧,快捷些,感觉上也更象高手。装了个KDE下的浏览器──Konqueror,虽然大,感觉比FireFox要爽多了,基本上想要的功能它都有。而且是集文件游览器和Web浏览器于一身。 IDEA也装上了,今天Liuzy推荐我用这个东东来做Java开发,以前一直用Eclipse,前两天想换换口味,于是下了netbeans5.0 beta2来试试,感觉还可以,至少集成了JSF和struts框架,eclipse下这些框架的免费插件可不太好用。开发Web应用也比Eclipse好用些。不过,IDEA这东东我还没有玩通,感觉除了书写代码很爽外,也没有多少过人之处,最重要的是不免费,用起总是于心不甘。

posted @ 2005-12-08 23:37 javaFever 阅读(197) | 评论 (0)编辑 收藏

Debian testing

今天把Debian换成了最的tesing版本,内核为2.6.12-1-686,可是还没有找到有哪个源上有这个版本的headers,我记得以前安装java包时是需要这个包的,不知道现在是否也一样,明天准备装jdk-1.5.0_06试试。

第一次在Linux下用Firefox来书写这个日志,感觉很不错。

posted @ 2005-12-07 23:28 javaFever 阅读(494) | 评论 (2)编辑 收藏

試了試Ubuntu

今天把Ubuntu下下來看看了,版本是5.10,結果很失望,完全不象Debian那樣自由,安裝根本沒有選擇,一股腦的全都裝上去了,安全花了近一個鍾頭,啟動速度也很慢,算了,還是裝回Debian好了。

posted @ 2005-12-05 21:55 javaFever 阅读(173) | 评论 (0)编辑 收藏

无题(外一首)

十年落拓功名意 一梦方知归未迟
丞相多因直谏死 将军几度陷城池
常思范蠡遁江去 欲效陶潜隐东篱
曾子堂前何所事 菊花把酒对诗词

 (2004年6月10日,那时候一直在考虑辞职,公司已经没有前景了,而且也感觉自己在公司里也没有什么发展空间,混到部门经理似乎就到头了,所以也准备另谋出路。心情郁闷之际,遂写此事。)

登翠屏山有感
俗子无知抱石寐 梵音清越向天行
经书难解心头事 只问野趣不问名
 (2004年6月14日,背景同前一首)

posted @ 2005-08-27 22:15 javaFever 阅读(350) | 评论 (0)编辑 收藏

游园

(一)
落落萧条日 无为登古台
青山临水起 云气向园开
雨带荷花老 风摧竹叶哀
前贤皆已去 当思故人来

(二)
我爱黄山谷 其书意荡然
诗成出居士 行文过米颠
流杯有笔过 摩壁岂无宣
形负沧桑去 名随青史全

(大概是2004年5月中旬吧,那时候诗兴大发,写了不少,可能跟看了书画展有关,也因为公司效益下滑,百无聊赖,寄情于诗了。游园其一我感觉写的还不错,格与境都上了一个台阶。)

posted @ 2005-08-27 22:13 javaFever 阅读(373) | 评论 (0)编辑 收藏

五月四日于人民公园观书画展有感

(一)
黑白有真味 今人多不识
落落观摩者 几人可相知

(模仿刘禹锡的“泠泠七弦上,静听松风寒,古调虽自爱,今人多不弹”这首诗。2004年五一节,老婆来宜宾,告诉我人民公园有书画展,便一同去看,结果楼下麻将声声,楼上清风雅静,看书画展的人还没有一桌打麻将的人多,遂感叹传统文化的流失。)

(二)
真草可清心 章白岂无趣
白丁难成行 鸿儒可同路

posted @ 2005-08-27 22:12 javaFever 阅读(394) | 评论 (0)编辑 收藏

某年月日途径成都遂骑车温江访友

一骑单车快 两只飞燕闲
至今思故友 一别五六年
投箸先有泪 举觞亦无言
明日八百里 前路已茫然

(这首诗应该在98或99年我从银行辞职的前夕,到温江找李显俊兄聊了聊,他还是那么温文尔雅,书艺也大有进步。如今到了成都,却没有的他的联系方法,也不知他还在不在化工技校教书。)

posted @ 2005-08-27 22:12 javaFever 阅读(367) | 评论 (0)编辑 收藏

古琴

一直以为,古琴已经不是一种乐器。

对古琴的仰慕,持续了十多年,并且至今是有增无减。古琴带给我的震撼,不是从声波对我的耳膜的刺激中来的。从初识古琴时听到的“阳关三叠”,到后来百听不厌的“梅花三弄”,以致如今略有所悟得“潇湘水云”,我一直在很用心的体会这个独特乐器所带来的意境。如果说开始听琴时还有些附庸风雅,那现在我已经是真正体会到古琴的妙处了。

初识妻时,给她听了很多古琴的曲子。妻是文人,那时对古琴仰慕的一塌糊涂。后来,有一次,乐器店的老板进了一具古琴,我便带她一同去听,结果,我和她的感受截然相反。

古琴悦己,古筝悦人,我想,把古琴仅仅当作一种乐器的人是弹不好古琴的。

古琴是一种“道器”、“德器”,以致我见到古琴时,真的怕自己一辈子都没有机会有资格拥有它。

posted @ 2005-08-14 21:03 javaFever 阅读(401) | 评论 (0)编辑 收藏

步韵一位朋友的词

点绛唇

几片扁舟,几番天色又飘淼。几人同道,几许听秋草。
月色苍茫,携琴欲远眺。知音少,也是玩笑,莫惹些烦恼。

原词如下:

点绛唇.忆

一树丹枫,一江秋水波微淼。一条长道,一桥连滩草。
黯淡斜晖,无语西楼眺。思年少,尽情欢笑,哪有些烦恼。

posted @ 2005-08-13 22:24 javaFever 阅读(356) | 评论 (0)编辑 收藏

ExadelStudio2.5插件使用(三)

{创建ManagedBean}
在Exadel下创建一个Managed Bean的方法十分简单。首先,在包资源管理器下面定位到/WebContent/WEB-INF/faces-config.xml文件,双击打开它。默认情况下是用源码方式打开,可以通过窗口下部的“Tree”标签以树状图形方法打开它,定位到“Managed Bean”,点击右键,选择“New->Managed Bean...”,如下图:

Image00000.jpg

这时Exadel会打开一个对话框要求你输入这个Managed Bean的存活期、类名称和名称等属性,注意,
1、请选中“Generate Source Code”选项,Exadel会为你产生类的代码。
2、类名称应该是全名,即名括包的名称。

Image00003.jpg

单击“Finish”按钮后,可以在包资源管理器里找到这个Managed Bean的源码文件。

Image00004.jpg

Managed Bean 和普通的JavaBean没有任何区别,TableTest类只有一个属性——data,它返回表Authors中的所有记录,源码如下(注意使用了前面配置的数据源):
/*
 * TableTest.java
 * javafever @ 2005-8-9
 
*/

package jtest;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.jsp.jstl.sql.Result;
import javax.servlet.jsp.jstl.sql.ResultSupport;
import javax.sql.DataSource;


public class TableTest {
    
    
private Connection con = null
;
    
private Result data = null
;
    
    
public void setData(Result data) 
{
        
this.data =
 data;
    }

    
    
public void connect() throws SQLException, NamingException {
        
if (con != nullreturn
;
        Context ctx 
= new
 InitialContext();
        DataSource ds 
= (DataSource) ctx.lookup("java:comp/env/jdbc/jtest"
);
        con 
=
 ds.getConnection();
    }

    
    
public void disconnect() throws SQLException {
        
if (con != null
{
            con.close();
            con 
= null
;
        }

    }

    
    
public Result getData() throws SQLException, NamingException {
        
try 
{
            connect();
            Statement stmt 
=
 con.createStatement();
            ResultSet rs 
= stmt.executeQuery("select * from authors"
);
            
return
 ResultSupport.toResult(rs);
        }

        
finally {
            disconnect();
        }

        
    }

    
    
public TableTest() {
    }

}


再次打开faces-config.xml文件,使用“Tree”方式编辑,选中“Managed Bean -> table”,在右边的“Preperties”编辑区里增加一个属性,增加属性的对话框如下。注意,Value Kind选择“null-value”。

Image00010.jpg

{建立JSP页面}
接下来创建页面来显示这个表格。(如果按照上一节创建了/WebContent/index.jsp文件,请先删除它。)在资源管理器的“/WebContent”节点上选择建立JSP文件,对话框如下,注意,Template选择“JSFBasePage”会生成一些默认的代码,方便你书写JSP程序。

Image00005.jpg

创建的代码如下:

Image00007.jpg

如果你不是使用的“Exadel Studio”透视图,现在请使用它,并打开“Exadel Palette”视图。“Exadel Studio”视图如下,它提供了一些JSF组件的图标。单击这些图标可以在Jsp编辑器里快速的生成JSF代码。

Image00006.jpg

比如,点击“dataTable”,生成的代码如下:

Image00008.jpg

最终的代码:

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<html>
    
<head>
        
<title></title>
    
</head>
    
<body>
        
<f:view>
            
<h:dataTable value="#{table.data}" var="data">
                
<h:column>
                    
<f:facet name="header">
                        
<h:outputText value="First Name"/>
                    
</f:facet>
                    
<h:outputText value="#{data.au_fname}"/>
                
</h:column>
                
<h:column>
                    
<f:facet name="header">
                        
<h:outputText value="Last Name"/>
                    
</f:facet>
                    
<h:outputText value="#{data.au_lname}"/>
                
</h:column>
                
<h:column>
                    
<f:facet name="header">
                        
<h:outputText value="Phone"/>
                    
</f:facet>
                    
<h:outputText value="#{data.phone}"/>
                
</h:column>
                
<h:column>
                    
<f:facet name="header">
                        
<h:outputText value="Address"/>
                    
</f:facet>
                    
<h:outputText value="#{data.address}"/>
                
</h:column>
            
</h:dataTable>
        
</f:view>
    
</body>    
</html>
  

{运行}
最后,运行/ant/build.xml。启动Tomcat,访问http://localhost:8888/jtest/index.jsf,结果如下:

Image00011.jpg

Exadel提供一个Web Browser,通过下面的方式使用。

Image00012.jpg

Image00009.jpg



posted @ 2005-08-10 21:03 javaFever 阅读(747) | 评论 (0)编辑 收藏

气愤

今天公司组织职工进行体检,在30所职工医院。结束后才发现,医院抽血好象不是用的一次性针头,大惧!以后再也不到职工医院看病了。

老婆今天回家了,衣来伸手饭来张口的幸福生活就此结束,今天开始又是吃伙食团,幸好我上次检查已经有了乙肝抗体,呵呵。

posted @ 2005-08-09 20:58 javaFever 阅读(255) | 评论 (0)编辑 收藏

ExadelStudio2.5插件使用(二)

{建立应用jtest}
建立一个名为jtest的Exadel JSF Project,模板选用JSFBlank。

{配置Tomcat数据源}
我使用的是Tomcat5.5.10,数据库是SQLServer2000_SP3(好象都是比较新的版本,难怪有人说我喜新厌旧)。
我的Web应用程序名叫jtest,所以我修改{TOMCAT_HOME}/conf/Catalina/localhost/jtest.xml文件,在里面增加数据源配置。文件内容如下:

<Context docBase="E:/java/jtest/WebContent"
  path
="/jtest"
  reloadable
="true">
 
<Resource name="jdbc/jtest"
   type
="javax.sql.DataSource"
   password
="1"
   driverClassName
="com.microsoft.jdbc.sqlserver.SQLServerDriver"
   maxIdle
="2"
   maxWait
="5000"
   username
="sa"
   url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"
   maxActive
="4"/>
</Context>

在包资源管理器中找到WebContent/WEB-INF/web.xml,打开,安装Exadel后会自动使用Exadel的XML编辑器打开XML文档,如果是web.xml和faces-config.xml,还会有相应的图形化工具。使用图形化工具来管理很方便,大大提高了开发效率。由于这个web.xml比较简单,所以我直接编写源文件,最终的文件内容如下:

<?xml version="1.0"?> 
<web-app version="2.4"
 
xmlns
="http://java.sun.com/xml/ns/j2ee"
 
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation
="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 

    
<context-param>

        
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
        
<param-value>server</param-value>
    
</context-param>

    
<context-param>
        
<param-name>javax.faces.CONFIG_FILES</param-name>
        
<param-value>/WEB-INF/faces-config.xml</param-value>
    
</context-param>

    
<listener>
        
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
    
</listener>

    
<!-- Faces Servlet -->
    
<servlet>
        
<servlet-name>Faces Servlet</servlet-name>
        
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        
<load-on-startup> 1 </load-on-startup>
    
</servlet>


    
<!-- Faces Servlet Mapping -->
    
<servlet-mapping>
        
<servlet-name>Faces Servlet</servlet-name>
        
<url-pattern>*.jsf</url-pattern>
    
</servlet-mapping>
    
    
<resource-ref>
     
<description>DataSource</description>
     
<res-ref-name>jdbc/jtest</res-ref-name>
     
<res-type>javax.sql.DataSource</res-type>
     
<res-auth>Container</res-auth>
    
</resource-ref>
    
</web-app>

除了<resource-ref>标签里定义数据源是我自己手动增加的内容以外,其它都是Exadel自动产生的,真是很方便。
在配置的过程中遇到点小麻烦:我的OS是Windows2003,JDBC是微软官方的,开始SQLServer2000没有打SP3,怎么也配不成功,结果一打SP3就行了,浪费了不少光阴。

{测试数据源}
最后,写一个index.jsp文件来测试数据源有没有工作,文件内容如下:

 1<%@ page language="java" %>
 2<html>
 3<head>
 4<title>jtest</title>
 5</head>
 6<body>
 7<h2>Result</h2>
 8
 9<%

10javax.naming.Context ctx = new javax.naming.InitialContext();
11javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:/comp/env/jdbc/jtest"
);
12java.sql.Connection con =
 ds.getConnection();
13java.sql.Statement stmt =
 con.createStatement();
14java.sql.ResultSet rs = stmt.executeQuery("select count(*) as c from authors"
);
15if (rs.next()) out.println("count is:" + rs.getInt("c"
));
16
rs.close();
17
stmt.close();
18
con.close();
19%>

20


将文件存放在/WebContent/目录下,然后运行/ant/build.xml,最后启动Tomcat,如果能看到结果,表示配置一切OK。

posted @ 2005-08-09 20:21 javaFever 阅读(725) | 评论 (1)编辑 收藏