JPetStore在Tomcat上部署方法(不考虑Eclipse及Struts或Spring)
今天在博客园申请了新的博客,希望自己能从这篇日志开始笔耕不辍,把科研或者技术开发学习过程中的问题都记录下来。(其实自己原来新浪博客还有很多博文现在仍在常常参考)。第一篇日志和科研关系不大,不过可以认为是我们之前研究的对象(现在对象已经升级了)
这篇文章主要总结如何仅仅基于Tomcat、MySQL来安装部署iBatis的JPetStore这样一个非常有名的J2EE Demo。由于我们研究的目的仅仅是找到一个研究对象。所以对JPetStore和Spring等框架相关的功能不予考虑,看到网上大部分是基于MyEclipse(Eclipse)或者Spring进行部署的,所以有必要总结一下精简版。博客大部分内容都是参考网上几篇现成的帖子,在此向匿名的作者们表示感谢!
这篇博文假定已经正确安装JDK以及Tomcat等基础环境。需要的安装包、插件及其下载地址为:
MySQL: mysql-5.1.51-win32.msi 下载地址:http://www.mysql.com/downloads/mysql/
Tomcat和MySQL连接插件:mysql-connector-java-5.0.5-bin.jar 下载地址:http://download.csdn.net/down/1961609/qibaozheng86
JPetStore:iBatis-JPetStore-5.0.zip 下载地址:http://www.apache.org/dist/ibatis/binaries/ibatis.java/JPetStore-5.0.zip
1.MySQL的安装
首先,在http://www.mysql.com/downloads/mysql/ 下载MySQL,然后按照网上到处都有的教程进行安装。例如百度文库中的文章:http://wenku.baidu.com/view/6e7918c3d5bbfd0a795673c5.html
(由于我在一台新的服务器上重复上述过程,当安装MySQL到最后一步的“Start Service”是,报出“cannot create windows service for mysql.error:0”的错误,按照百度百科中最简单的做法,在上2步中,将MySQL的服务名另外选择即可解决。网上很多方法太过复杂)
在安装好MySQL之后,可以安装一个可视化的插件,经过笔者搜索,发现有人推荐的“Navicat”确实很适合对MySQL的可视化操作,详情可以参看:
另外,需要在%TOMCAT_HOME%\lib中添加类似“mysql-connector-java-5.0.5-bin.jar”的jar包,以实现Tomcat和MySQL的连接。(网上很多,例如可以在http://download.csdn.net/down/1961609/qibaozheng86 下载)
2.JPetStore下载及安装
由于iBatis已经将其所有项目从Apache转至Google Code上进行维持下载,而Google Code上并没有列出JPetStore的下载链接。通过笔者的尝试寻找,发现这个链接:
http://www.apache.org/dist/ibatis/binaries/ibatis.java/JPetStore-5.0.zip
可以下载到JPetStore的5.0版本(比Sourceforge上的版本要新很多),下面就以5.0版本为例进行说明。
将JPetStore-5.0.zip解压后,在目录iBatis-JPetStore-5.0\src\ddl\mysql下可以找到
jpetstore-mysql-create-user.sql
jpetstore-mysql-dataload.sql
jpetstore-mysql-schema.sql
三个文件,用Navicat运行三个sql文件。需要说明的是,由于SQL语句版本的问题,jpetstore-mysql-schema.sql中的4-6行中的:
--DROP INDEX IF EXISTS productCat;
--DROP INDEX IF EXISTS productName;
--DROP INDEX IF EXISTS itemProd;
修改为:
#--DROP INDEX IF EXISTS productCat;
#--DROP INDEX IF EXISTS productName;
#--DROP INDEX IF EXISTS itemProd;
运行成功后会在MySQL数据库中出现相应库和数据表,如下图所示:
在Tomcat的管理页面(如http://localhost:8080/manager/html)中选择“WAR file to deploy”,点击浏览,在JPetStore解压的目录中的“iBatis-JPetStore-5.0\build\wars”中选择“jpetstore.war”
部署成功之后,就可以通过http://localhost:8080/jpetstore/ 进行浏览了。但是此时还没有真正和MySQL数据库连接,需要进行以下步骤:
在%TOMCAT_HOME%\Tomcat 6.0\webapps\jpetstore\WEB-INF\classes\properties中,将database.properties文件的5-8行:
driver=org.hsqldb.jdbcDriver
url=jdbc:hsqldb:mem:jpetstore
username=sa
password=
修改为:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/jpetstore?
username=root
password=XXXXXXX
其中password部分是安装MySQL时设置的密码。
这时候再使用JPetStore登陆,购物时选择“Add to Cart”会产生类似如下的错误信息:
org.apache.struts.beanaction.BeanActionException: Error dispatching bean action via URL pattern ('addItemToCart').
网上提供的解决方法是将 %TOMCAT_HOME%\webapps\jpetstore\WEB-INF\classes\com\ibatis\jpetstore\persistence\sqlmapdao\sql 文件夹中的:
Item.xml中的第23行和44行中的ITEMID修改为----> I.ITEMID
重启Tomcat后即可正常使用,预定订单后,可以观察到MySQL中的Orders表格变为:
说明已经成功配置了JPetStore的所有功能。
接下来就可以正常访问JPetStore并收集相应数据了。