javafever


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

2005年4月6日 #

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 阅读(347) | 评论 (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 阅读(690) | 评论 (1)编辑 收藏

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

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

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

debian etch中java显示中文

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

posted @ 2006-11-28 22:31 javaFever 阅读(336) | 评论 (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 阅读(8009) | 评论 (2)编辑 收藏

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

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

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

都江堰腐败归来

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

posted @ 2006-06-04 22:37 javaFever 阅读(265) | 评论 (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 阅读(275) | 评论 (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 阅读(5724) | 评论 (4)编辑 收藏

2006年打算

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

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

出差回来了

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

posted @ 2005-12-24 21:42 javaFever 阅读(135) | 评论 (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 阅读(358) | 评论 (0)编辑 收藏

無題一首

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

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

posted @ 2005-12-14 13:05 javaFever 阅读(222) | 评论 (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 阅读(194) | 评论 (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 阅读(481) | 评论 (2)编辑 收藏

試了試Ubuntu

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

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

无题(外一首)

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

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

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

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

游园

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

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

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

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

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

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

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

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

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

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

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

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

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

古琴

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

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

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

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

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

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

步韵一位朋友的词

点绛唇

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

原词如下:

点绛唇.忆

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

posted @ 2005-08-13 22:24 javaFever 阅读(348) | 评论 (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 阅读(740) | 评论 (0)编辑 收藏

气愤

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

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

posted @ 2005-08-09 20:58 javaFever 阅读(249) | 评论 (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 阅读(717) | 评论 (1)编辑 收藏

ExadelStudio2.5 插件的使用(一)

最近一个月,一直在用Exadel做JSF的练习,发现它的确是一个非常好的Eclipse插件,尤其是对编写JSP页面,几乎没有其它工具比它更好用。

{安装}
安装就不说了,从Exadel的网站上下载,运行Exe或者Jar文件即可。

{配置Exadel}
在“首选项”->“Exadel”->“Running”的“Tomcat”选项卡中配置好Tomcat的路径。ExadelStudio2.5支持Tomcat、JBoss、JRun和J2EESDK。不过,ExadelStudioPro3.0就支持几乎所有的应用服务器了。
在“首选项”->“Exadel”->“JSF”->“Project”选项卡中可以配置你使用的JSF的版本、Servlet的版本以及你的JSF项目模板。还有一个选项是在Tomcat的Server.xml文件中注册你的Web上下文。不过由于Tomcat5.0以后可以使用独立的上下文配置文件,所以我一般不喜欢使用这个选项。

{新建一个JSF项目}
在刚才的配置中,JSF项目模板有两个选项,一个的“JSFBlank”,另一个是“JSFKickStart”。JSFBlank将建立一个空白的JSF项目,Exadel会自动在你的项目路径中产生你需要的文档。
首先,它会把需要的JSF库放到应用的/WEB-INF/lib目录下,在项目中的路径为/WebContent/WEB-INF/lib。
第二,它会自动设置好项目的构建路径,让Eclipse能轻松地使用JSF库。
第三,它会自动产生几个重要的文档:Web.xml、faces-config.xml和build.xml。其中web.xml和faces-config.xml放在/WebContent/WEB-INF/下面,而build.xml放在/ant目录下面。
注意,如果你需要对你的ManagedBean进行的调试的话,请记住将build.xml的compiler任务中javac的debug属性设为“on”。
Exadel还会产生一个JavaSource目录,所有ManagedBean的源码都应该存放在这里。还有build和deploy目录是ant用来执行编译和部署的。deploy里是最终的部署路径,当然,你要是不喜欢的话,尽管在build.xml里把它换成其它的。

如果想一句代码都不写就体会一下JSF的概貌的话,可以将Exadel的JSF项目模板设置为“JSFKickStart”,这时Exadel会为你产生一个比空白JSF项目稍稍多一点功能的项目模板,它有一个欢迎页面和一个ManagedBean。虽然没有多大用处,但可以很清晰地看到JSF项目的书写方法。

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

郁闷的一天

到S公司两个月了,这两天,公司搞了个令我郁闷的新员工培训。

说郁闷,有几个原因。当然,最重要的原因是要和那一大堆刚从大学里分配来的小孩子们坐在一起,听年纪比我还小的什么经理呀之类的讲些肤浅的技术。第二,我们公司的副总工,就是我们部门的老大,给我们讲软件开发技术时,带有强烈的个人主观色彩,把Java,尤其是EJB批得一无是处,把WebService奉为放之四海皆准的真理,而且以前也发现他有把自己的主观意见强加给下属的趋向,郁闷。

不过也有好处,总算轻松了两天,没干什么活。

ExadelStudioPro3.0到期了,没办法,只好用免费的ExadelStudio2.5,不过,对我来说,主要用它做JSF,倒是够用了,唯一不爽的就是要换回成Eclipse3.0。

SQLServer的JDBC驱动在SQLExplorer和Exadel的Database Explorer里老有问题,不知道怎么回事,JDBC本身应该没有问题,在Tomcat配连接池的情况下也跑得上好的。

posted @ 2005-08-06 00:06 javaFever 阅读(159) | 评论 (0)编辑 收藏

记住为javac作业添加debug="on"

前段时间在做一个JSF练习时,总是不能对类文件进行跟踪调试,Eclipse弹出“cannot install breakpoint”错误对话框。依照该错误对话框的提示,将项目的complier设为使用workspace的,并且在workspace的java->complier选项中选中“add line number attribute to generate class files”,仍然不能解决问题。结果今天才发现,原来,项目的build.xml文件中,javac没有使用debug="on",翻看ant的文档,原来javac默认debug="false"。

posted @ 2005-08-03 20:48 javaFever 阅读(878) | 评论 (0)编辑 收藏

南乡子(霜重暮江寒)

南乡子

霜重暮江寒
一叶扁舟影自单
渐行渐远渐无意
催眠
收拾心事向管弦

何必理衣冠
老子偏爱独倚栏
懒问世间沉浮事
何盼
记取蓑翁钓鱼杆

这是1999年步韵一位网友的词,不过原词和当时和的词已经记不清了,只能依稀记得两句。很久没有写词了,故依原词意,重作此词。

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

搬家

受不了CSDN不停地出问题,搬到这里落户来了,希望能让我坚持写Blog。

posted @ 2005-08-02 22:34 javaFever 阅读(200) | 评论 (0)编辑 收藏

自嘲一首

自嘲一首

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

自我来盛安,已过两月圆,传闻不实,所憾甚多。奈何机遇已失,良缘未结,故做此诗,以慰心境。

posted @ 2005-08-02 22:32 javaFever 阅读(232) | 评论 (0)编辑 收藏

Eclipse3.1启动参数

从Eclipse3.1开始,在{$eclipse}目录下有一个eclipse.ini文件,利用该文件可以指定Eclipse的启动参数,我的eclipse.ini文件内容如下所示:

-debug
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=128m
-Dcom.sun.management.jmxremote



-debug将在Eclipse启动时打开一个Command窗口,Eclipse的调试信息会出现在这个窗口里。
-Xms128m和-Xmx512m指示Eclipse使用的最小堆空间为128M,最大为512M。
-XX:MaxPermSize=128m指示Eclipse使用操作系统128M的实际内存空间。
-Dcom.sun.management.jmxremote用于Java5.0的新特性,Java5.0提供一个叫JConsole的实用工具,该工具可以查看一个Java Applet或Java Application在JVM中的状态及资源使用情况,非常好用。

posted @ 2005-08-02 22:18 javaFever 阅读(704) | 评论 (1)编辑 收藏

暑热难眠,心情郁闷

独卧东郊已越年,开窗纳月复无眠。
欲携琴书归何处,可怜世上无桃源。

posted @ 2005-07-28 19:29 javaFever 阅读(172) | 评论 (0)编辑 收藏

[导入]Debian安装过程(杂项)

Debian安装过程(杂项)
昨天基本把系统装好了,今天上午折腾了一会儿xfce4,不太熟,虽然把firefox之类的装进去了,但没再面板上的东西不知道如何调出来,所以又把WM换成了GNOME。

在安装Debian时自动使用了DHCP获取网络地址,也没有机会让我指定静态IP,我不喜欢动态IP,所以修改/etc/network/interfaces文件,将IP地址改为静态。格式如下:
auto eth0
iface eth0 inet static
    address xxx.xxx.xxx.xxx
    netmask xxx.xxx.xxx.xxx
    network xxx.xxx.xxx.xxx
    gateway xxx.xxx.xxx.xxx

用apt安装了deborphan(用于清除遗留包)、nmap、mysql、apache2,基本没遇到问题。装vmware-tools的时候,需要先装gcc、make、kernel-headers-x.x.xx-x-xxx。

最后装JDK5.0,首先再SUN的网站下载JDK的BIN文件,再装一个java-package包,这个包用来将BIN文件生成DEB安装包。要注意的是,使用make-jpkg工具时不能在root帐号下用,必须是一般用户使用fakeroot命令来操作,因此要注意这个用户对bin文件的操作权限。我在装的过程中出了几个权限上的问题,但最终还是装好,并且可以用。

关于挂接Windows文件系统(NTFS、FAT32)不能显示中文的解决办法:
使用iocharset选项,如果用命令,则如下所示:
$sudo mount -o iocharset=cp936 /dev/hda1 /mnt/windows
如果在fstab里设置,则如下所示:
/dev/hda1   /mnt/windows   auto   iocharset=cp936   0   0

posted @ 2005-04-07 10:21 javaFever 阅读(248) | 评论 (0)编辑 收藏

[导入]Debian安装过程(安装软件)

Debian安装过程(安装软件)

基本系统装好了,但什么东西都没有,只能登录进去列列目录,看看系统状况之类的,肯定还要装很多软件,而且据说Debian是目前最好的桌面Linux,现在连桌面的影儿都没有。

Debian提供了APT来管理软件包,apt的确很好用,个人感觉比FreeBSD下的port还要方便。当然,依赖性问题有没有port解决得好就不知道了,但至少比rpm强得我。

要让apt工具得很好,首先要有速度快的源,因此vi /etc/apt/sources.list,我喜欢简洁,所以我只使用cn99一个源,但是为了安装jdk,我还添加了一个z42.de,我的sources.list内容如下:

deb http://debian.cn99.com/debian/ sarge main non-free contrib
 deb http://z42.de/ debian/

然后使用apt-get update更新。我这里边z42有点点慢,不过能受得了:)

先装一个控制台中文环境,以便以后可以看到安装软件过程中的中文信息,记得很早以前用Linux时用过zhcon,现在还是用它。

apt-get install zhcon

如果网络速度快的话,一两分钟就搞定了。安装过程中会有个对话框,因为没有中文支持,所以是乱码,不管他,直接回车,反正也只有一个选项。

在命令行输入zhcon启动控制台中文平台,以后就可以在控制台看见中文了。

接下来安装X核心

apt-get install x-window-system-core

要下载大约30M的东西,我的网速为100K左右,几分钟搞定。然后设置X,让系统检测硬件吧,自己配X的话,估计得死N回才会成功。基本上使用默认的选择,只有几个地方改,第一,我使用带滚轮的鼠标,所以类型选ImPS/2,第二,我需要选择LCD显示器。第三,图个方便,设定xserver-xfree86时,选Medium。

在命令行输入X,稍等片刻便能看到灰色的背景和黑色的“X”,表明X-Server已经配置好了,接下来就是装桌面系统。

桌面系统太多了,KED、GNOME、XFCE4、FVWM,等等,以前用过KED和GNOME,这些重量级都觉得桌面总觉得太慢,这次想装个轻量级,有朋友推荐XFCE4,决定试一试,如果不行的话,再换回GNOME。

首先看看有哪些与XFCE4相关的可用包:

apt-cache search xfce4 |more

东西不少,虽然比gnome少些,但毕竟是轻量级的桌面,够用就行。装!

apt-get install xfce4

呵呵,不大嘛,下载的包只有19M左右,解压后才55.8M,比起下载包都有111M的GNOME(我装GNOME包时已经安装了GNOME-CORE,否则下载的东西应该更多吧)小多了,肯定快。

果然,两三分钟就搞定了,中间有个设定对话框,我选默认。

startxfce4

进去了,好快,几秒钟时间就看到可爱的小老鼠了,不象GNOME要好久!噫,怎么回事,全是乱码?原来没装中文字体!赶紧装。

apt-get install xfonts-intl-chinese

apt-get install ttf-arphic-bkai00mp ttf-arphic-bsmi00lp

再进去,晕,出来一部分中文,一部份乱码。想起来了,昨天装GNOME也是这样,后来装了fcitx输入法才正常的。

再进去,晕,出来一部分中文,一部份乱码。想起来了,昨天装GNOME也是这样,后来装了fcitx输入法才正常的。

apt-get install fcitx

果然,在安装这个输入法时安装了一个依赖包:ttf-arphic-gbsn00lp,看来这个字库才是全的。

再进xfce4,果然,中文完全正常了。

还有点遗憾,字体不好看,有些应用程序还没装,比如浏览器、媒体播放器等。明天接着弄。

posted @ 2005-04-06 03:09 javaFever 阅读(246) | 评论 (0)编辑 收藏

[导入]Debian安装过程(基本系统)

今天为了写这个日志,决定把Debian重头装一遍,反正昨天装得很乱,装Gnome和Java时乱七八糟地装了不少的包,没做记录,感觉系统不那么干净,对于我强度洁僻的我来说,心里总觉得不爽。

1、建立虚拟机。我使用VMware5.0.0-build12888,建立的虚拟机如下:
系统类型:Other Linux
网络方式:Bridge
内存大小:160M(我的Host机器有512M)
硬盘大小:4G

2、在http://cdimage.debian.org/pub/cdimage-testing/daily/i386/current/下载Debian网络安装光盘。

3、在VMware里配置光驱为使用刚刚下载的ISO文件,起动虚拟机。

4、“Choose Language”对话框,选择“Chinese (Simlified) -中文(简体)”。

5、“选择国家和地区”对话框,选择“中国”。

6、“选择键盘布局”对话框,选择“美国英语”。

7、“选择键盘布局”对话框,选择“PC样式(AT或PS-2接口)键盘”。(这个对话框弹出后,接着又会弹出刚才那个对话框,仍然选择“美国英语”。)

8、安装程序开始加载组件。

9、“网络设置”对话框,主机名使用默认的“Debian”,回车,域名我填的“flying.home”。

10、“选择归档镜像”对话框,当然选“中国”,不可能选小日本或台湾的(强烈搞议Linux把台湾列入国家!),回车,镜像服务器选“debian.cn99.com”,据说这个飞快。代理不填,我是ADSL上网。

11、安装程序开始探测硬件。

12、“磁盘分区”对话框,先选“清空整个磁盘”,反正我是虚拟机,无所谓。“分区方案”使用“将所有文件放在同一分区中”,我是新手嘛。(实际上分区我可是老手,Debian才是新手:)。将分区信息写入磁盘,一概确认。对于老手来说,那么多对话框真烦。

13、现在开始安装基本系统了。(时间有点长,已经17:51了,我得去准备晚餐了,熬稀饭吃,穷啊!其实是懒,又穷又懒,因为懒,所以穷。。。。。。嘿嘿。)

14、“将GRUB安装至硬盘:对话框,选“是”,安装到主引导记录(MBR)上。

15、好了,基本系统安装完了,网络不错,二十分钟就搞定。

16、重启,开始配置基本系统。

17、时区配置,我选中国内陆,即Asia/Chongqing。

18、Root密码填“**********************”,呵呵,没那么位啦。再建立一个“flying”帐号(以后有用,安装JDK时会用到。)

19、Apt配置,不扫描光盘,从网上找。

20、邮件代理我没配,反正现在不懂,暂时也不会用。

21、OK,基本系统可以用了,用root登录,没问题。

posted @ 2005-04-06 02:21 javaFever 阅读(462) | 评论 (0)编辑 收藏