`

沃杂志后台项目开发测试问题总结 之 后台问题

 
阅读更多

/***********************后台bug总结**********************************
下面是在工作中常用的一些后台的bug,
目标:总结常用的问题的解决方法,提高开发效率
开始时间:2011-11-10
编写人:happ
参阅书籍:
相关项目:《中国联通电子杂志后台【2011-10~】 技术:ssh1+oracle+javaScript||jQuery》
*/

目录【按项目划分】

1 杂志管理项目中遇到的bug【2011-10~2012-1】
    1.1 在做验证杂志不能重复时 【2011-11-10】
    bug描述:Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: Z near line 1,   column 97 [from com.sinovatech.mall.magazine.model.dto.TMagazineDTO Z where Z.isDel=0 and      Z.name='happ043' Z.period='2018002']
    原因:在where 条件中新增的查询条件之前没有加"and",请仔细看 “where Z.isDel=0 and Z.name='happ043'   Z.period='2018002'”
   解决方案:在“Z.period” 前边加“and” where Z.isDel=0 and Z.name='happ043' Z.period='2018002'

 

    1.2 在做会员管理的会员信息的查询时【2011-11-14】 

 

        bug描述:org.apache.commons.beanutils.ConversionException: No value specified for 'Date'
          org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
        原因:在jsp页面上的数据类型时String,而在实体中定义的是Date,所以在提交时往bean中填充值时出错
        解决法案:将该字段的name属性的值改为不和bean中一样的,在提交时就不会自动填充值,然后在后台自动取值就可以 


     1.3 在做会员管理会员信息的编辑【2011-11-15】 

 

      bug描述:java.text.ParseException: Unparseable date: "" 
      原因:在后台action中索取到的日期字段的值为空
      解决方案:加上不为空的验证即可 


     1.4 在做会员管理会员信息的编辑【2011-11-15】 

 

      bug描述:java.text.ParseException: Unparseable date: "2011-11-03"
      原因:在后台action中索取到的日期字段的值为 2011-11-03 而SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");包含时分秒,格式不匹配
      解决方案:将取到的值加上时分秒,或者将格式中的时分秒去掉 


     1.5 在做会员管理会员信息的编辑【2011-11-15】 

 

      bug描述:request.setAttribute("error", "1");,但是在前台取怎么都取不到
      原因:未知      
      解决方案:将tomcat重启就可以取到了 


     1.6 在做会员管理会员信息的查看时【2011-11-15】 

 

      bug描述:org.apache.jasper.JasperException: File "/WEB-INF/tld/extremecomponents.tld" not found
      原因:在所对应的jsp页面引入tabglib时路径写错      
      解决方案:找到对应的页面将其改对就可 


     1.7 在做会员管理会员信息的查看时【2011-11-15】 

 

      bug描述: <tr align="center" class="title">
     <td align="right" bgcolor="#f7f7f7">
      性别:
     </td>
     <td align="left" bgcolor="#f7f7f7">
      <c:if test="${m.sex eq '0' }" >女</c:if>      
              <c:if test="${m.sex eq '1' }">男</c:if>        
     </td>
    </tr>
    在前台显示的是“女男”,其实应该显示“女”
      原因:在所对应的jsp页面未引入<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>标签     
      解决方案:找到对应的页面将<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>引入即可

 
     1.8 在做会员管理-消费记录的查询时【2011-11-16】

 

      bug描述: /**
     * <ul>
     * <li> <b>Ŀ��:</b> <br />
     * <p>
     * ά����TMemberOrderDTO��Action
     * </p>
     * </li>
     * <li><b>���õIJ�����</b></li>
     * <li><b>���в��ԣ�</b></li>
     * <li> <b>�޸���ʷ��</b><br />
     * <p>
     * ����:2011-11-08 16:17:54<br />
     * ����:CodeGenerator
     * </p>
     * </li>
     * <li><b>��֪���⣺</b></li>
     * </ul>
     */
     在action中出现了乱码,如上所示
      原因:action原来采用的是GBK编码,后来将其改为UTF-8,就出现了如上所示的乱码     
      解决方案:将文件改为GBK编码,变为正常的中文后,拷贝文件的内容,然后将文件的编码改为UTF-8,将文件的内容覆盖,即可;如果不行,将该文件先关闭然后重新打开即可
      
     1.9 在做会员管理-消费记录的分页时【2011-11-16】

 

       bug描述:javax.servlet.ServletException: org.apache.jasper.JasperException: javax.el.ELException: Error reading 'memberName' on type com.sinovatech.mall.member.model.dto.TMemberDTO_$$_javassist_47
        org.apache.jasper.JasperException: javax.el.ELException: Error reading 'memberName' on type com.sinovatech.mall.member.model.dto.TMemberDTO_$$_javassist_47
        javax.el.ELException: Error reading 'memberName' on type com.sinovatech.mall.member.model.dto.TMemberDTO_$$_javassist_47
        org.hibernate.LazyInitializationException: could not initialize proxy - no Session
        报如上异常,还是支出在jsp页面的   <td>${mem.tbTMemberDTO.memberName}</td>这一行报错,将其改为 <td>${mem.tbTMemberDTO.id}</td>后不报错
      原因:从网上查org.hibernate.LazyInitializationException: could not initialize proxy - no Session这个异常是原因是hibernate的session已经关闭,集合没有被初始化。
        在hibernate中:hibernate3 默认支持延迟加载(lazy="proxy"我们可以把proxy看作是true
      解决方案:将映射文件中<many-to-one> 中设置 lazy="false"
      
     2.0 在做会员管理-消费记录的查询时【2011-11-16】

 

       bug描述: could not resolve property: servicename of: com.sinovatech.mall.member.model.dto.TMemberOrderDTO        
      原因: 异常的意思是不能解析“servicename”属性,就是在实体com.sinovatech.mall.member.model.dto.TMemberOrderDTO 里找不到对应的属性
      解决方案:看看实体TMemberOrderDTO中的值是怎么拼写的,估计是servicename拼写错误,将其改正即可
      
     2.1 修改杂志管理-杂志信息-下载的bug时【2011-11-21】

 

       bug描述:点击文件下载链接进行下载,采用ajax提交方法,显示alert弹出框,框中有“pk U”的字样,并且不能弹出下载框  
      原因: ajax不能完成文件下载,只能完成请求提交并获取返回信息,不能处理下载文件的response
      解决方案:改为  var url = "${ctx}/magazineshow/downLoadFile.do?fileName="+name+"&file="+value; 
  window.location.href=url;提交方法
  
     2.2 修改杂志管理-杂志信息-下载的bug时【2011-11-21】【可以看看自己的javaeye博客中《JAVA中文字符编码问题详解》这篇文章】

 

       bug描述:在jsp页面采用get方式提交中文中,用struts1在后台取值时出现乱码 "/upload/magfile/1321593057562/杂志女友.zip" 
      原因:在采用get方式进行提交时需用encodeURI 方法进行两次编码如:name=encodeURI(encodeURI(name)),
        并且在后台进行解码:file = java.net.URLDecoder.decode(file,"UTF-8");
        如果不进行解码 则会出现如下结果:/upload/magfile/1321593057562/%E6%9D%82%E5%BF%97%E5%A5%B3%E5%8F%8B.zip       
      解决方案:改为  var url = "${ctx}/magazineshow/downLoadFile.do?fileName="+name+"&file="+value; 
    window.location.href=url;提交方法


     2.3 发布magazine时【2011-11-23】 

 

      bug描述:Caused by:
    org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Communications link failure
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
      
      原因: mysql 服务器所在的机器开着防火墙或者没给开放访问权限
      解决方案: 请客户给开放
 
     2.3 发布magazine时【2011-11-23】 

 

 

      bug描述:mysql SQL Error: 1146, SQLState: 42S02 (linux)
      2011-11-24 17:06:20,367 ERROR [org.hibernate.util.JDBCExceptionReporter] - Table 'magazine.BMS_DOMAIN' doesn't exist
      Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'magazine.BMS_DOMAIN' doesn't exist
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
        at com.mysql.jdbc.Util.getInstance(Util.java:384)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1054)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
        at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
        at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2275)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)
        at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
        at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
        at org.hibernate.loader.Loader.doQuery(Loader.java:674)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        at org.hibernate.loader.Loader.doList(Loader.java:2220)
        ... 48 more
      
      
      原因:项目在开发的时候在WINDOWS平台下开发的,开发完了之后在LINUX环境上部署好之后,运行时MySQL数据库报错,提示为某个表不存在之类的错误信息,后来修改了MySQL的配置文件将大小写敏感去掉,问题解决。
   这个问题的根源在于,在 MySQL 中,数据库和表其实就是数据目录下的目录和文件,因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的。
   MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。
        
      解决方案:WINDOWS:
   编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。
   LINUX:
   编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。
  
  注意:看是否有修改/etc/my.cnf的权限,如果不能修改,请客户开放修改配置文件的权限
 
  2.4  测试magazine时【2012-1-10】  

 

   bug描述:
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at com.sinovatech.web.filter.BmsIntegrationFilter.doFilter(BmsIntegrationFilter.java:69)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at com.sinovatech.common.web.filter.EncodeFilter.doFilter(EncodeFilter.java:59)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
   at java.lang.Thread.run(Unknown Source)
      原因:
      解决方案:
      注意:


  2.5  第三轮测试magazine时【2012-1-10】  


   bug描述:Caused by: java.lang.NoSuchFieldError: deferredExpression
    
      原因:
      解决方案:
      注意:
 

分享到:
评论

相关推荐

    公司项目后台管理测试用例

    公司项目后台管理测试用例 本测试用例涵盖了公司项目后台管理的多个方面,包括登录模块、角色管理、用户权限管理、用户管理和修改密码功能。下面是每个模块的详细信息: 登录模块 测试用例编号 TestCase -1- * ...

    c++后台服务器开发面经或八股总结.zip

    【资源说明】c++后台服务器开发面经或八股总结.zipc++后台服务器开发面经或八股总结.zipc++后台服务器开发面经或八股总结.zipc++后台服务器开发面经或八股总结.zipc++后台服务器开发面经或八股总结.zipc++后台服务器...

    Javaweb商品后台项目

    JavaWeb商品后台项目是基于Java技术栈开发的电商系统后端部分,主要实现了对商品的管理功能,包括增、删、改、查等基本操作。在这个项目中,开发者使用了Java语言作为主要编程语言,MySQL作为数据库存储商品信息,而...

    大漠后台绑定测试工具--唐涛

    再者,唐涛开发的大漠后台绑定测试工具注重用户体验,界面简洁,操作直观。即使是对测试工具不熟悉的人员,也能通过简单的学习快速上手。同时,工具的稳定性也是其亮点之一,减少了因工具本身问题导致的测试中断情况...

    PHP商城项目后台开发步骤

    在PHP商城项目后台开发中,涉及的技术点广泛且深入,涵盖了数据库设计、用户认证与授权、商品管理、订单处理、支付接口集成等多个方面。以下将详细介绍这些关键步骤: 1. **项目规划与需求分析**: 开发前,首先...

    MyKTV项目 server后台项目

    本项目名为"MyKTV项目 server后台项目",虽然在美观和优化方面可能存在一些不足,但它揭示了后台服务器开发的基本流程和技术要点。以下将对该项目进行详细解析。 首先,我们要理解“后台server项目”的概念。后台...

    java后台管理项目

    《Java后台管理项目详解——基于Spring Boot、Swagger2和Bootstrap》 在当今信息化时代,后台管理系统扮演着至关重要的角色,特别是在企业级应用中。本文将深入解析一个基于Java的后台管理项目,它集成了Spring ...

    Java开发的一个简约后台管理系统源码.zip

    项目简介:Java开发的一个简约后台管理系统 1.需求定义:外包项目如雨后春笋,开发工期被迫压缩,为了开发人员专注开发项目业务,早点下班能陪老婆、孩子。 2.产品定位: 简约后台管理系统 3.项目特点:此项目代码...

    快速开发后台框架

    在后台开发中,表单处理是非常常见的一环,包括接收用户输入、验证数据、保存到数据库等。这个类可能封装了这些功能,使得开发者在创建表单时只需关注业务逻辑,而无需关心表单的细节实现。它可能提供了各种方法,...

    大漠后台测试

    《大漠后台测试工具 V1.5:提升测试效率与质量的关键》 在软件开发过程中,后台测试扮演着至关重要的角色。...对于任何从事后台开发和测试工作的专业人士来说,理解和掌握这款工具将极大地提升工作效率。

    Python 快速开发后台管理系统项目代码

    这是一套快速开发管理后台,使用流行的技术栈Python3、FastAPI、TypeScript、Vue3、vite2、Element Plus1.2(ElementUI)。 后台管理系统、后台管理框架、Python管理后台、FastApi管理后台、前后端分离管理后台、Vue...

    团购项目团购项目

    在这个压缩包中,包含了实现一个团购项目的多个关键组成部分,包括需求文档、前后台代码、JSP页面、测试文档以及开发帮助文件。下面我们将逐一探讨这些内容。 首先,**需求文档**是整个项目开发的基础,它详细阐述...

    基于 Flask 框架开发的微信小程序后端项目,用于构建小程序商城后台项目源码(项目实战).zip

    1、基于 Flask 框架开发的微信小程序后端项目,用于构建小程序商城后台项目源码(项目实战).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末...

    分享6个国内优秀Java后台管理框架的开源项目,建议收藏!.pdf

    【描述】:本文将介绍六个在中国备受推崇的Java后台管理框架的开源项目,这些框架不仅高效且实用,是开发人员快速构建后台管理系统的理想选择。 【标签】:Java, 后台管理, 框架, 开源, CMS 【正文】: Java后台...

    服务器后台性能及测试

    - **敏捷开发流程与性能测试**:在敏捷环境中,性能测试应融入到迭代开发中,及时反馈性能问题,快速调整优化。 6. **结束语** 性能测试是一个持续的过程,需要结合理论知识和实践经验,不断优化测试方法和工具,...

    App后台开发运维和架构实践

    App后台开发运维和架构实践 通过阐述移动互联网中 App 后台开发的特点,梳理了 App 后台开发中会遇到的各个技术点,给出了生产环境常用软件的实战运维经验总结,剖析了常见 App 后台技术架构设计,为读者呈现一幅...

    后台管理项目计划.xls

    vue后台管理项目总结及项目计划,集合难点及功能

    基于java开发的智能坐姿矫正台灯后台系统+源码(毕业设计&课程设计&项目开发)

    基于java开发的智能坐姿矫正台灯后台系统+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于java开发的智能坐姿矫正台灯后台系统+源码,适合毕业设计、...

    基于Java的后台管理系统快速开发脚手架.zip

    Maven或Gradle作为自动化构建工具,可以帮助开发者管理项目依赖,执行编译、测试、打包等任务,简化开发流程。 综上,"基于Java的后台管理系统快速开发脚手架.zip"包含了一系列用于后台系统开发的关键技术,如Java...

Global site tag (gtag.js) - Google Analytics