http://bbs.mbig.cn/topic_20008.html
我使用的是webwork+spring+hibernate,其他的可以參考相關tutorial。
一、系統環境準備
從http://java.sun.com下載,我使用1.4.2_05.
從latest Tomcat release 下載tomcat,目前的版本是5.0.28。最好不要用LE版本否則你要添加DBCP和JavaMail的JAR包.
下載最近的Appfuse版本,我使用的是 AppFuse 1.6。
下載mysql。
將會使用 Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, Cactus, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (or Spring MVC)這些組件。
二、開始安裝配置Appfuse
download appfuse 并且解壓
需要啟動Mysql服務器
建立自己的應用程序數據庫默認字符集是UTF8,這個問題很關鍵,因為Appfuse支持多語言否則程序無法正常運行。所以Mysql服務器的默認的字符集也應該是UTF8,大家使用mysql怎么更改到UTF8字符集我不知道,我是通過命名行參數啟動的:
mysqld --default-character-set=utf8
此時可以用ant建立自己的應用了:
ant new -Dapp.name=myApp -Ddb.name=mydb
如果需要改變數據庫可以修改build.properties文件中這部分的參數:
我使用的是webwork+spring+hibernate,其他的可以參考相關tutorial。
一、系統環境準備
從http://java.sun.com下載,我使用1.4.2_05.
從latest Tomcat release 下載tomcat,目前的版本是5.0.28。最好不要用LE版本否則你要添加DBCP和JavaMail的JAR包.
下載最近的Appfuse版本,我使用的是 AppFuse 1.6。
下載mysql。
將會使用 Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, Cactus, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (or Spring MVC)這些組件。
二、開始安裝配置Appfuse
download appfuse 并且解壓
需要啟動Mysql服務器
建立自己的應用程序數據庫默認字符集是UTF8,這個問題很關鍵,因為Appfuse支持多語言否則程序無法正常運行。所以Mysql服務器的默認的字符集也應該是UTF8,大家使用mysql怎么更改到UTF8字符集我不知道,我是通過命名行參數啟動的:
mysqld --default-character-set=utf8
此時可以用ant建立自己的應用了:
ant new -Dapp.name=myApp -Ddb.name=mydb
如果需要改變數據庫可以修改build.properties文件中這部分的參數:
代碼 |
#database.jar=${postgresql.jar} #database.type=postgresql #database.name=myApp #database.host=localhost #database URL for creating other databases (doesn't work with pgsql) #database.admin.url=jdbc:${database.type}://${database.host}/template1 #database.admin.username=postgres #database.admin.password=postgres #hibernate.dialect=net.sf.hibernate.dialect.PostgreSQLDialect #database.driver_class=org.postgresql.Driver #database.url=jdbc:${database.type}://${database.host}/${database.name} |
建立數據庫database, 在tomcat上發布應用
運行
ant setup
出錯了,無法自動建立數據庫mydb。出錯信息如下:
BUILD FAILED: D:\myfile\myApp\build.xml:830: org.dbunit.dataset.NoSuchTableException: app_user
檢查執行過程,把自動執行的創建app_user的sql語句放到mysql control center中執行
SQL代碼 |
create table app_user ( username varchar(20) not null, version integer not null, password varchar(255), first_name varchar(50), last_name varchar(50), address varchar(150), city varchar(50), province varchar(100), country varchar(100), postal_code varchar(15), email varchar(255) not null unique, phone_number varchar(255), website varchar(255), password_hint varchar(255), primary key (username) ); |
執行失敗,錯誤提示:
[root@localhost:3306] 錯誤 1071: Specified key was too long. Max key length is 500
作如下修改,成功了,
email varchar(255) not null unique改成
email varchar(100) not null unique,
經過測試,長度超過166(包括)就出錯了!
不知道是不是UTF8字符集造成的原因,一個UTF8字符被認為占用了三個字節(500/3<167)??
就是說聲明為 not null unique的字段長度不能超過166。
由于sql語句根據POJO的tag自動創建:
找到org.appfuse.model.User的源程序
修改
@hibernate.column name="email" not-null="true" unique="true"
改成:
@hibernate.column name="email" not-null="true" length="166" unique="true"
運行
ant setup-db
成功了!ok!
啟動tomcat 5.0.25
運行
ant setup
出錯了
BUILD FAILED: D:\edu\edu\build.xml:33: Please copy junit.jar into C:\ant/lib
完成拷貝
成功了!excellent!
打開瀏覽器FireFox run一下:
輸入:http://127.0.0.1:8080/myApp
沒有反應??怎么回事??
命令行下面啟動tomcat,看看有什么錯誤提示:
unregistering logger Catalina:type=Logger,path=/myApp,host=localhost
打開C:\Tomcat\conf\Catalina\localhost\myAqpp.xml
修改:注釋掉 logger信息
[root@localhost:3306] 錯誤 1071: Specified key was too long. Max key length is 500
作如下修改,成功了,
email varchar(255) not null unique改成
email varchar(100) not null unique,
經過測試,長度超過166(包括)就出錯了!
不知道是不是UTF8字符集造成的原因,一個UTF8字符被認為占用了三個字節(500/3<167)??
就是說聲明為 not null unique的字段長度不能超過166。
由于sql語句根據POJO的tag自動創建:
找到org.appfuse.model.User的源程序
修改
@hibernate.column name="email" not-null="true" unique="true"
改成:
@hibernate.column name="email" not-null="true" length="166" unique="true"
運行
ant setup-db
成功了!ok!
啟動tomcat 5.0.25
運行
ant setup
出錯了
BUILD FAILED: D:\edu\edu\build.xml:33: Please copy junit.jar into C:\ant/lib
完成拷貝
成功了!excellent!
打開瀏覽器FireFox run一下:
輸入:http://127.0.0.1:8080/myApp
沒有反應??怎么回事??
命令行下面啟動tomcat,看看有什么錯誤提示:
unregistering logger Catalina:type=Logger,path=/myApp,host=localhost
打開C:\Tomcat\conf\Catalina\localhost\myAqpp.xml
修改:注釋掉 logger信息
代碼 |
<!-- Logger className="org.apache.catalina.logger.FileLogger" prefix="myApp_log." suffix=".txt" timestamp="true"/ --> |
重新啟動tomcat
還是不對
更換版本tomcat 5.0.5.28
錯誤信息變了
Application 沒有啟動??
運行任務
ant install
沒有成功!出錯信息如下:
BUILD FAILED: D:\myfile\myApp\build.xml:1221: java.io.IOException: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/deploy?path=%2FmyApp
直接在瀏覽器中輸入http://localhost:8080/manager/deploy?path=%2FmyApp
??出現窗口要求輸入用戶名和密碼
查看myApp\tomcat.properties 管理員用戶密碼為admin,admin
修改 tomcat\conf\tomcat-users.xml 增加管理員admin
增加兩個角色
代碼 |
<role rolename="admin"/> <role rolename="manager"/> |
增加admin用戶
代碼 |
<user username="admin" password="admin" roles="role1,tomcat,admin,manager"/> |
刪除tomcat下面myApp目錄和conf\Catalina\localhost下的myApp.xml文件,重新啟動tomcat
運行
ant install
成功了!!
但是tomcat報錯:
2004-11-14 19:59:49 org.apache.catalina.core.StandardHostDeployer install
信息: Processing Context configuration file URL file:/C:/Tomcat/conf/Catalina/localhost/myApp.xml
2004-11-14 19:59:49 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application from URL jar:file:/C:/Tomcat/webapps/myApp.war!
/
2004-11-14 20:00:04 org.apache.catalina.core.StandardContext listenerStart
嚴重: Skipped installing application listeners due to previous error(s)
2004-11-14 20:00:04 org.apache.catalina.core.StandardContext start
嚴重: Error listenerStart
2004-11-14 20:00:04 org.apache.catalina.core.StandardContext start
嚴重: Context startup failed due to previous errors
2004-11-14 20:00:04 org.apache.catalina.logger.LoggerBase stop
信息: unregistering logger Catalina:type=Logger,path=/myApp,host=localhost
為什么呢??
tomcat版本不對??
運行struts安裝程序,正常運行
重新運行ant install-webwork
BUILD FAILED: D:\myfile\myApp\build.xml:1391: Basedir D:\myfile\myApp\extras\webwork does not exist
嗯~~
更改extras\viewgen目錄名稱為webwork
重新運行ant install-webwork
再運行ant install
打開firefox,輸入 http://127.0.0.1:8080/myApp。成功了!
輸入用戶名mraible
密碼tomcat
OK!!進入主界面(界面沒有上傳,不好意思了^_^)