最近學(xué)習petstore,真是走了不少彎路,看來(lái)什么東西還都是要先了解徹底了再下手比較好。
開(kāi)始學(xué)習的時(shí)候我下載了關(guān)于petstore的一些學(xué)習資料,大部分都是關(guān)于什么設計模式,實(shí)例講解的內容,于是我先學(xué)習了我認為里面相關(guān)的技術(shù),結果,當我把代碼導進(jìn)Myeclipse時(shí),發(fā)現了很多陌生的東西,而且貌似是不是我們平時(shí)想象的有用戶(hù)管理什么的那種B2C模式,還見(jiàn)到了原來(lái)根本沒(méi)有見(jiàn)過(guò)的faces-config.xml配置文件。后來(lái)發(fā)現原來(lái)那些都是早些版本的介紹,自己下載的是petstore2.0。開(kāi)始摸不到頭腦了。因為想到它里面的數據庫什么的環(huán)境可能和自己的不一樣就沒(méi)有馬上運行它,想在自己大體瀏覽一下代碼、更改環(huán)境后再試試。
代碼掃了一遍,知道了原來(lái)這個(gè)東西用的java ee5.0,框架是JSF,有點(diǎn)像客戶(hù)對客戶(hù)的那種電子商務(wù),大概明白了以后我就開(kāi)始改代碼中關(guān)于環(huán)境,數據庫什么的東西。該改的地方也改了,結果不像自己想的那么簡(jiǎn)單,運行不起來(lái),于是又開(kāi)始上網(wǎng)詢(xún)問(wèn)自己的種種問(wèn)題。
后來(lái),發(fā)現網(wǎng)上說(shuō)用的最經(jīng)典的組合是Netbeans+GlassFish。。。
網(wǎng)上說(shuō)的經(jīng)典組合我一個(gè)都沒(méi)有用過(guò)。我之前用的是myeclipse,和NetBeans有點(diǎn)不同,但是差不多可以接著(zhù)用,但是GlassFish就不行了,于是又開(kāi)始學(xué)習這個(gè)Glasfish。
GlassFish的啟動(dòng)安裝發(fā)現了問(wèn)題,結果我發(fā)現如果我先連著(zhù)網(wǎng),那么很有可能這個(gè)GlassFish就報異常啟動(dòng)不了,把網(wǎng)線(xiàn)拔了就好了,但是我在啟動(dòng)以后再聯(lián)網(wǎng)沒(méi)有問(wèn)題。為什么會(huì )出現這個(gè)問(wèn)題現在也不是很清楚,總之,下次遇到這種情況可以試下拔網(wǎng)線(xiàn)。。。呵呵!
接下來(lái)就是GlassFish自帶的Derby數據庫問(wèn)題了。學(xué)習以后我試著(zhù)操作這個(gè)derby,我也遇到了連不上數據庫的問(wèn)題??偨Y以下:
1、一定要設DERBY_HOME這個(gè)環(huán)境變量,具體目錄位置是derby數據庫的位置,這樣一來(lái)不用每次都進(jìn)入Derby所在的目錄下了。
2、對數據庫操作之前,一定別忘了輸入連接數據庫的命令。先進(jìn)入數據庫操作的工具ij下,再數據連接數據庫的語(yǔ)言:connect 'jdbc:derby:petstore;create=true';
3、最后的分號一定不能少,少了命令不能執行。之后所有的SQL命令都不能少了分號(切記)!
4、更改應用中有關(guān)服務(wù)器的部分東西。在下面我會(huì )具體寫(xiě)出。
費了不少勁,走了不少彎路怎么也算是把它運行起來(lái)了,努力算是沒(méi)有白費,也真是謝謝網(wǎng)絡(luò ),謝謝網(wǎng)上的熱心人,幫了不少忙啊。
建議大家以后學(xué)習這個(gè)petstore的時(shí)候先上網(wǎng)查找部署petstore的具體事宜,部署好了再學(xué)相關(guān)知識啊,這樣可能可以少走些彎路。
下面就是部署petstore的具體辦法:
第一步:搭建應用環(huán)境
一、我用的軟件,
1、MyEclipse_7.0
2、glassfish 2.x(里面自帶了ant工具,因此沒(méi)有特意下)
3、jDK6
二、安裝glassfish:
在命令行下輸入如下: java -Xmx256m -jar glassfish_name.jar
打開(kāi),Accept后我解壓放在了命令的當前目錄下,我是放在了 D:glassfish
三、glassfish自帶ant工具,設置ant的環(huán)境變量:ANT_HOME :D:\glassfish\lib\ant
在path里面設置:%ANT_HOME%\bin和%ANT_HOME%\lib
四、進(jìn)入cmd 界面 D:glassfish>ant -f setup.xml
build success 后服務(wù)器就安裝好了
五、GlassFish自帶derby數據庫。設置DERBY_HOME = D:\glassfish\javadb
MyEclipse和JDK的安裝就不說(shuō)了,默認情況下MyEclipse和glassfish會(huì )“聯(lián)”上如果是用以前已經(jīng)安裝好的軟件,有可能要自己關(guān)聯(lián)一下。
第二步:新建工程,
首先將下載到D盤(pán)的javapetstore-2.0-ea5-installer.jar解壓: 雙擊即可,滾動(dòng)條拉到最后,點(diǎn)擊accept會(huì )自行解壓生成javapetstore-2.0-ea5-installer文件
在MyEclipse 中新建一個(gè)空web project 工程名任意,要注意的是:
項目的 src folder 設為:src\java ; web root folder 設為:web
j2ee specification level 選J2EE5。0
再點(diǎn)在工程上右擊import從文件系統導入D:javapetstore-2.0-ea5-installer下的所有東西 。
為項目導入外部jar文件:D:\javapetstore-2.0-ea5-installer\lib \**.** ,
為項目加入 JSF 支持:導入jsf框架,最好先把 pet項目下: pet/web/WEB-INF/ 下的兩個(gè)文件:
faces-config.xml 和 sun-web.xml 改個(gè)名字備份一下,當jsf 框架導入以后再還原回來(lái)。免得被覆蓋了。
第三步:修改部份文件。
1。pet/bp-project/app-server.properties 中有一行:
javaee.home=c:/Sun/SDK 改為 javaee.home=D:/glassfish (D:/glassfish服務(wù)器安裝目錄)
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:盤(pán)下建一個(gè)1.txt 文件 里面的內容為一句話(huà):
AS_ADMIN_PASSWORD=adminadmin
第四步:發(fā)布
1、把數據庫打開(kāi):
它使用的是derby數據庫 ,點(diǎn)擊服務(wù)器目錄下
D:\glassfish\javadb\frameworks\NetworkServer\bin\startNetworkServer.bat
點(diǎn)擊它就打開(kāi)了數據庫服務(wù)器。
2、用myeclipse打開(kāi)glassfish服務(wù)器
3、創(chuàng )建數據庫:
NetBeans中可以直接運行setup.xml腳本生成數據庫,我現在只知道怎么用myeclipse運行build.xml這個(gè)ant任務(wù),所以我的setup.xml是在命令下完成的。
打開(kāi)命令提示符輸入:ant -f 工程名\setup\setup.xml(就是工程的setup文件夾下的setup.xml直接拖過(guò)去就可以了)。build成功后進(jìn)行下一步。
4、發(fā)布 war 文件
在myeclipse中以ant Editor方式打工程下的build.xml
然后運行它的default[default] 任務(wù). (右鍵選擇run as->ant build...<好像是這個(gè)>)
build success后,在你的workSpace中的工程的dist/下面就應該已經(jīng)生成了petstore.war文件。將它c(diǎn)opy到服務(wù)器下:
D:\glassfish\domains\domain1\autodeploy\下
5、訪(fǎng)問(wèn)頁(yè)面:
打開(kāi) http://localhost:8080/petstore/ 如果沒(méi)有在console中出現多大的問(wèn)題的話(huà), 應該就可以訪(fǎng)問(wèn)到petstore了。
(如果出現數據庫的問(wèn)題,別忘了看一下數據庫連接是否已經(jīng)打開(kāi)。也就是之前說(shuō)的connect 'jdbc:derby:petstore'這個(gè)命令是否執行了)
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。