huangzhe0 2009-05-01
最近学习petstore,真是走了不少弯路,看来什么东西还都是要先了解彻底了再下手比较好。
开始学习的时候我下载了关于petstore的一些学习资料,大部分都是关于什么设计模式,实例讲解的内容,于是我先学习了我认为里面相关的技术,结果,当我把代码导进Myeclipse时,发现了很多陌生的东西,而且貌似是不是我们平时想象的有用户管理什么的那种B2C模式,还见到了原来根本没有见过的faces-config.xml配置文件。后来发现原来那些都是早些版本的介绍,自己下载的是petstore2.0。开始摸不到头脑了。因为想到它里面的数据库什么的环境可能和自己的不一样就没有马上运行它,想在自己大体浏览一下代码、更改环境后再试试。
代码扫了一遍,知道了原来这个东西用的javaee5.0,框架是JSF,有点像客户对客户的那种电子商务,大概明白了以后我就开始改代码中关于环境,数据库什么的东西。该改的地方也改了,结果不像自己想的那么简单,运行不起来,于是又开始上网询问自己的种种问题。
后来,发现网上说用的最经典的组合是Netbeans+GlassFish。。。
网上说的经典组合我一个都没有用过。我之前用的是myeclipse,和NetBeans有点不同,但是差不多可以接着用,但是GlassFish就不行了,于是又开始学习这个Glasfish。
GlassFish的启动安装发现了问题,结果我发现如果我先连着网,那么很有可能这个GlassFish就报异常启动不了,把网线拔了就好了,但是我在启动以后再联网没有问题。为什么会出现这个问题现在也不是很清楚,总之,下次遇到这种情况可以试下拔网线。。。呵呵!
接下来就是GlassFish自带的Derby数据库问题了。学习以后我试着操作这个derby,我也遇到了连不上数据库的问题。总结以下:
1、一定要设DERBY_HOME这个环境变量,具体目录位置是derby数据库的位置,这样一来不用每次都进入Derby所在的目录下了。
2、对数据库操作之前,一定别忘了输入连接数据库的命令。先进入数据库操作的工具ij下,再数据连接数据库的语言:connect'jdbc:derby:petstore;create=true';
3、最后的分号一定不能少,少了命令不能执行。之后所有的SQL命令都不能少了分号(切记)!
4、更改应用中有关服务器的部分东西。在下面我会具体写出。
费了不少劲,走了不少弯路怎么也算是把它运行起来了,努力算是没有白费,也真是谢谢网络,谢谢网上的热心人,帮了不少忙啊。
建议大家以后学习这个petstore的时候先上网查找部署petstore的具体事宜,部署好了再学相关知识啊,这样可能可以少走些弯路。
下面就是部署petstore的具体办法:
第一步:搭建应用环境
一、我用的软件,
1、MyEclipse_7.0
2、glassfish2.x(里面自带了ant工具,因此没有特意下)
3、jDK6
二、安装glassfish:
在命令行下输入如下:java-Xmx256m-jarglassfish_name.jar
打开,Accept后我解压放在了命令的当前目录下,我是放在了D:glassfish
三、glassfish自带ant工具,设置ant的环境变量:ANT_HOME:D:\glassfish\lib\ant
在path里面设置:%ANT_HOME%\bin和%ANT_HOME%\lib
四、进入cmd界面D:glassfish>ant-fsetup.xml
buildsuccess后服务器就安装好了
五、GlassFish自带derby数据库。设置DERBY_HOME=D:\glassfish\javadb
MyEclipse和JDK的安装就不说了,默认情况下MyEclipse和glassfish会“联”上如果是用以前已经安装好的软件,有可能要自己关联一下。
第二步:新建工程,
首先将下载到D盘的javapetstore-2.0-ea5-installer.jar解压:双击即可,滚动条拉到最后,点击accept会自行解压生成javapetstore-2.0-ea5-installer文件
在MyEclipse中新建一个空webproject工程名任意,要注意的是:
项目的srcfolder设为:src\java;webrootfolder设为:web
j2eespecificationlevel选J2EE5。0
再点在工程上右击import从文件系统导入D:javapetstore-2.0-ea5-installer下的所有东西。
为项目导入外部jar文件:D:\javapetstore-2.0-ea5-installer\lib\**.**,
为项目加入JSF支持:导入jsf框架,最好先把pet项目下:pet/web/WEB-INF/下的两个文件:
faces-config.xml和sun-web.xml改个名字备份一下,当jsf框架导入以后再还原回来。免得被覆盖了。
第三步:修改部份文件。
1。pet/bp-project/app-server.properties中有一行:
javaee.home=c:/Sun/SDK改为javaee.home=D:/glassfish(D:/glassfish服务器安装目录)
2。pet/bp-project/build.properties中有两行:
(1)javaee.home=c:/Sun/AppServer改为javaee.home=D:/glassfish
(2)javaee.server.passwordfile=“{javaee}/samples/....”改为javaee.server.passwordfile=D:/1.txt
并在D:盘下建一个1.txt文件里面的内容为一句话:
AS_ADMIN_PASSWORD=adminadmin
第四步:发布
1、把数据库打开:
它使用的是derby数据库,点击服务器目录下
D:\glassfish\javadb\frameworks\NetworkServer\bin\startNetworkServer.bat
点击它就打开了数据库服务器。
2、用myeclipse打开glassfish服务器
3、创建数据库:
NetBeans中可以直接运行setup.xml脚本生成数据库,我现在只知道怎么用myeclipse运行build.xml这个ant任务,所以我的setup.xml是在命令下完成的。
打开命令提示符输入:ant-f工程名\setup\setup.xml(就是工程的setup文件夹下的setup.xml直接拖过去就可以了)。build成功后进行下一步。
4、发布war文件
在myeclipse中以antEditor方式打工程下的build.xml
然后运行它的default[default]任务.(右键选择runas->antbuild...<好像是这个>)
buildsuccess后,在你的workSpace中的工程的dist/下面就应该已经生成了petstore.war文件。将它copy到服务器下:
D:\glassfish\domains\domain1\autodeploy\下
5、访问页面:
打开http://localhost:8080/petstore/如果没有在console中出现多大的问题的话,应该就可以访问到petstore了。
(如果出现数据库的问题,别忘了看一下数据库连接是否已经打开。也就是之前说的connect'jdbc:derby:petstore'这个命令是否执行了)