jpetstore 5.0部署上遇到的bug今天学习在tomcat 上部署 jpetstore,但是按照网上其他的朋友写的部署方法,发
jpetstore 5.0部署上遇到的bug
今天学习在tomcat 上部署 jpetstore,但是按照网上其他的朋友写的部署方法,发生了错误,因为我用的oracle数据库,而其他人都用的mysql,所以这个错误好像还没有人写出来。
先列举一下我的部署方法,实际上很简单。
1.下载jpetstore5.0,解压缩后,将iBATIS_JPetStore-5.0\JPetStore-5.0\build\wars下的jpetstore.war拷贝到tomcat 的发布目录。最好解压缩,因为后面要修改其中的数据源配置。
2. 使用iBATIS_JPetStore-5.0\JPetStore-5.0\src\ddl\oracle 文件夹里的sql文建立oracle的数据库表。(我是用plsql建立的)记住使用这两个文件的顺序,先使用jpetstore-oracle-schema.sql建立表结构,然后用第二个建立测试数据。
3.修改数据源配置,配置文件在C:\Tomcat 5.0\webapps\jpetstore\WEB-INF\classes\properties下的database.properties,按照实际情况修改。
基本上就这三步,就可以配置成功!但是启动tomcat后,点击http://127.0.0.1:8086/jpetstore/shop/index.shtml?,然后接着点进去查看动物列表,点到选择 动物 itemId的时候,就会提示错误说
C:\Tomcat 5.0\webapps\jpetstore\WEB-INF\classes\com\ibatis\jpetstore\persistence\sqlmapdao\sql 中的Item.xml有问题,而且报的是数据库SQL错误,错误提示我不在这里写了,后来,我打开item.xml后,把其中的sql复制到plsql里运行了一下,终于发现错误啦!
错误的提示:未明确定义列 ITEMID
错误的原因:因为其中的SQL是多表查询,而这几个表里都有 itemId字段,而且它写的?select?? ITEMID......没有指定是那个表的itemId,所以,将这个字段加一个表名前缀就可以了,例如:select? I.itemId ........
改正后,重起tomcat,然后运行程序,一切OK!
如果有不明白的地方,可以发邮件探讨 listenan#tom.com
1 楼 spank 2007-08-23 我也下载的jpetstore5.0
不过数据库采用的mysql 服务器tomcat5.5 步骤给你说明的差不多
结果不能进入主界面,看不到鹦鹉的画面。不知道问题出在哪了?
我给你发了封邮件,有空帮我看下吧,谢谢! 2 楼 chenjia66804610 2008-03-27 我按照网友的说法配了
楼主说的也都改了
但是点击fish是报错
不知道楼主有没有碰到过呢,错误和连接如下:
http://192.168.2.114:8060/JPetStore5.0/shop/viewCategory.shtml?categoryId=FISH
javax.servlet.ServletException: javax.servlet.jsp.JspException: Define tag cannot set a null value
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.catalog.Category_jsp._jspService(Category_jsp.java:351)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
3 楼 gml520 2008-06-19 谢谢楼主,我的问题解决了! 4 楼 xiecailian 2008-07-22 谢谢...呵呵.. 5 楼 tmartin 2012-03-18 chenjia66804610 写道我按照网友的说法配了
楼主说的也都改了
但是点击fish是报错
不知道楼主有没有碰到过呢,错误和连接如下:
http://192.168.2.114:8060/JPetStore5.0/shop/viewCategory.shtml?categoryId=FISH
javax.servlet.ServletException: javax.servlet.jsp.JspException: Define tag cannot set a null value
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.catalog.Category_jsp._jspService(Category_jsp.java:351)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
遇到了与你一样的问题,可惜还没解决,请问你解决了吗?