设为首页 收藏本站
查看: 2151|回复: 0

[经验分享] 2015-07-30 至 2016-03-16错误Note

[复制链接]

尚未签到

发表于 2017-3-3 08:45:46 | 显示全部楼层 |阅读模式
2015-07-30 至 2016-03-16错误Note
这是在做项目WMS的时候项目积累:出库单在复核完成后,删除司机(司机只要被用过的话就做的逻辑删除,没有被用过的话就做的物理删除。),删除成功后再打开订单的历史详情查看,出现页面报错!!

错误原因:在出库系统里面调用的查找静态资源的接口是 getDriverList() 在这个接口里面,我强制的设置了只能查找到状态值为state=1的数据。所以造成页面加载出错了。
如果调用getDriverById()这个方法的话就不会报错了。


sql 报错:

Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'HEB4222222' for key 'UNIQUE_CODE'
错误原因:数据库表里面的字段加了唯一索引,而在新增时这个值重复了,所以就会报错。





   limit ${startRow},${pageSize}




从我静态资源过去,是map转换过去的,所以会把字符串自动转换成数字,所以在sql里面用startRow != "" 用这个去判断虽然不会报错,但是是通不过的,不会执行下面的limit语句。


parseInt(finished) >parseInt(finishedfinished)
js里面var 变量的比较,如果是后台传过来的数据,数字最好转成int再比较
直接比较的话会有错误的!(不是比较会有错误,而是通过后台传过来的值是字符串【即使是数字但是其数据类型不一定是整数】,所以可能比较会出现错误)


今天调用接口遇到问题:
接口为null
没有调到:原因配置dubbo没有配置完。
后来数据连接出错:原因数据库的配置有问题

接口数据获取有问题:
问题描述:由于接口里面是连表,对于一些继承的属性没有放入值。
修改,把继承的值进行实际定义。

dubbo用2.5.4 不是2.5.3版本

数据库移库到10.28.6.50  3306   root 123456
需要修改的数据有:config.properties
wms-staticresource  里面的 pom.xml文件里面的数据库配置

JSON.parseArray(JsonKit.toJson(dao.find(DbUtil.parseSql(sqlName, paras), DbUtil.getParas(sqlName, paras))), clazz);
JSON.parseArray("{{name:123},{name:456}}", User.class);//将json字符串,转换成Java对象数组  

这里转化就有问题了:
JSON.parseArray(JsonKit.toJson(dao.find(DbUtil.parseSql(sqlName, paras), DbUtil.getParas(sqlName, paras))), clazz);

JsonKit.toJson(dao.find(DbUtil.parseSql(sqlName, paras), DbUtil.getParas(sqlName, paras)))这里面转化的就是把结果转化成的json对象,这里的json字段就和数据库里面的字段一样的,没有进行转换。是带有下划线的。所以如果clazz是domain里面的javabean就会出现值的匹配出现错误。
但是如果是model里面的对象就不会出现字段的匹配错误,原因是,jfinal里面进行过映射了。




  id,
  login_name as loginName,
  real_name as realName,
  department,
  type,
  state,
  created,
  modified


   

需要修改的地方有sqlMap里面,如上

其次修改页面的获取值的字段方法,不再有向数据库那样的下划线字段login_name,,都是java规范的命名字段loginName

修改model模型里面的通过id获得对象的id字段写法,比如:area_id,修改成areaId

所以sqlMap可以精简代码的暂时没用了。

model
sqlMap
页面
list
用到queryByCondition方法的需要大写,其他同原来的


http://localhost:8085/test/lineList
把localhost后面的接口中间的冒号,用成了中文的冒号,所以在访问的时候就报错了。

list查询也之前无法回显原因:在if判断比较时出错,不同类型的比较是不会成功的。


3、路径统一 :staticresource  ---->  ${contextPath}
问题解决:
没有再BaseController 里面配置下面的:
context.put("contextPath", ConfigUtils.getProperty("dubbo.jetty.contextpath"));

测试出现的bug:
href="/staticresource/warehouse/skipAdd"
改成
href="warehouse/skipAdd"
在修改成功后再查看就会报错,路径出错,路径里面多了路径  /warehouse


error : com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'dili_wms.goods2wearehouse' doesn't exist
在JFinal 里面的配置,有一个是要求和数据库名字一样的。
arp.addMapping("goods_2_storage_location", Goods2storageLocation.class);
在测试静态资源的一些修改和新增功能时对于乱写的测试数据,有些可能程序会报错,主要意思是某些字段的类型错误怎么的,造成这个错误的原因可能是因为在制造假数据时无法转换成数据库里面对应字段的类型。比如:测试数据为string,而数据库里面要求的对应字段是int类型的。


不允许id传空,不然会报异常
Assert.notNull(dataSource, "dataSource cannot be null");

《!!bug!!》com.alibaba.fastjson.JSONException: can not cast to int, value : true
所以在json转换时就报上面的错误:JSON.parseArray(JsonKit.toJson(dao.find(DbUtil.parseSql(sqlName, paras), DbUtil.getParas(sqlName, paras))), clazz);
解决原因:
MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),
MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,

把tinyint的大小修改为2bit。


错误:java.lang.NullPointerException
at com.jfinal.plugin.activerecord.Model.find(Model.java:529)
在测试时其他地方都没有抛出错误,到这里时就出现错误了:
Config config = getConfig();
  Connection conn = null;
  try {
   conn = config.getConnection();
   return find(conn, sql, paras);
  } catch (Exception e) {
   throw new ActiveRecordException(e);

问题解决:没有再JFinalConfig里面定义映射

me.add("/goods", GoodsController.class,"/");
arp.addMapping("goods", Goods.class);

因为定义了映射就相当于不用写JavaBean了,所以这也是JFinal里面不用写JavaBean的原因,这里的映射它会把数据库里面的字段对应进行匹配。
而我这里刚好没有进行映射,那么在我的程序里面用到Dao层数据时就会报错。


//父节点nav对应Nav类,childNav节点对应ChildNav类,有多个childNav节点,这里需转换到集合中
//没有这句的话会报错误“Caused by: //com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: //Duplicate field childNav”
         xstream.addImplicitCollection(ChildNav.class, "childNav");



遇到的奇怪问题:
对于xml里面父节点和子节点相同的属性值,如果父节点和子节点分别抽象成一个类出来,各自不存在继承关系,各自声明相同的那个属性值,程序就会报错。
但是如果用子类去继承父类,就不用去声明那个相同的属性,直接从父类哪里继承到,那么程序就不会报错。
一直没有找到为什么会出现这个问题。


在项目的搭建过程中,遇到了很多问题。

1、首先是配置文件的报错spring的相关bean的引入报错,
处理方法:在pom文件里面正确引入相关spring的依赖。
2、在配置文件里面有些引入的bean没有报错了但是里面的属性name
即name里面的值报错。cannt resolved......
可以去bean里面的class类里面查看,可能是类里面还报错呢。
3、找不到jar包

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349461-1-1.html 上篇帖子: activemq-5.13 在windows下部署应用 下篇帖子: 如何快速学习一门新的框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表