-- 作者:bibiye -- 发布时间:2005-1-11 20:03:44
-- Appfuse实践(一)——配置安装 我使用的是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中执行 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信息 <!-- 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!!进入主界面(界面没有上传,不好意思了^_^)
|