Java项目出现的问题--实际项目01
1 从Excel中导入指纹图谱数据异常
在导入指纹图谱时对Excel的规范是有限制的,有时候报空指针异常是因为虽然有些地方看起来没有内容但是可能有空格键;解决方法是新建一个Excel表,把要用到的数据复制过去。
2 导入mysql数据时报错:Packet for query is too large
mysql有一个默认的数据表大小上传限制,当需要把Excel中较多的数据传入mysql中可能会超过这个大小的限制,从而引发异Causedby:com.mysql.jdbc.PacketTooBigException: Packet for query is too large
解决方法时修改默认配置----注意修改后要重启mysql并且也要重新部署项目。
查看目前配置
show VARIABLES like '%max_allowed_packet%'; //默认为1M 改为更大的值:
set global max_allowed_packet = 2*1024*1024*10;
3 设置登录网站地址
如果不设置则默认为localhost:8080 + 项目名称;因此需要对地址重新进行配置。下面这两个是在自己的电脑上进行的配置,在服务器配置还有所不同在word上有记录。
1、C:\Windows\System32\drivers\etc中对HOST文件配置 127.0.0.1 food.sjtu.edu.cn
2、在Tomcat\apache-tomcat-8.0.50\conf下的service文件中配置。
在进行服务器设置的时候使用startup.bat开启Tomcat服务器,这样才会把war包解析一开始竟然忘记打开Tomcat了就没自动解析。因为配置不一样在本机输入的是food.sjtu.edu.cn进行访问,在服务器要输入sjtufood.com进行访问。
4 把数据库中的数据导出--mysql
右键项目,选择备份\导出,然后选择如图所示会生成对应的.sql文件。可以自己创建一个数据库,记得要把.sql文件中的数据库名字修改为自己想要创建的,然后全部选中复制,再执行即可。
5 不能创建数据库(150)
问题报错:
21:52:10,611 ERROR [localhost-startStop-1] SchemaUpdate:212 - Unsuccessful: alter table rice_zheng_zhu add index FK4429F9526D8C31A7 (food_id), add constraint FK4429F9526D8C31A7 foreign key (food_id) references food_list (food_id)
21:52:10,612 ERROR [localhost-startStop-1] SchemaUpdate:213 - Can't create table 'sjtufoodtest1.#sql-1960_9d' (errno: 150)
百度的大部分说是外键配置错误,我在几经修改后发现仍然是错误的。最后发现是因为mysql的问题,只需要右键表,把表的类型选择为MyISAM即可。注意,每次新建表都会
默认为图中的格式,要修改。不过好像即使不修改也没有关系,只是单纯的会报错。
6 变量首字母最好不要大写
如果大写的话在自动生成的get set方法中就不会出现this,并且可能会影响后面的配置问题。
7 变量与数据库命名规范
数据库中变量是没有大小写的,依靠下划线,Java中是依靠大小写。因为项目包含的配置文件较多,在传入参数时很可能就会发生混淆,因此统一把Java中与数据库相同的名字全部小写,涉及Java内部变量时增加使用名字并依据驼峰规则。
8 显示查看总是多一列
点击增删改查后发现总是多了一列,排查了好久发现是在jsp文件里出了问题<td></td>这是一对的,但是如果没写</td>也不会报错,而恰恰就是写了<td>XXX<td>的形式,导致总是多出来一个。
9 远程连接
使用TeamViewer进行远程控制连接,不过每次都需要设定ip和密码
10 Tomcat配置
指纹图谱图片的显示需要设置下Tomcat中config,配置路径,有一个上交专用配置文件记录的有。
11 使用hql语句进行条件删除
//使用的是面向对象因此不能直接用表名,而应该用对象名。:id表示的参数
final String queryString = "delete Fingerprint2 where fp1_id = :id";
Query query = getSession().createQuery(queryString);
query.setString("id", fp1Id); //设置参数的值
query.executeUpdate(); //执行query语句
12 指纹图谱导入报错
在导入指纹图谱时有时会报错,大部分时候是因为格式的问题,一般从2方面查找。1 是否是按照下面的格式标明的,>>>这个符号要有,格式要完全对照如下图所示。2 是否设置了单元格格式为文本格式。
13 指纹图谱页面分页问题
在指纹图谱分页时由于采用了同一个分页,会导致没有更新这样在第2页时跳转到子页面就会仍然从第2页开始解决方法是在子页面重新写一个页数获取并在指纹图谱jsp的listUI.jsp页面中重置为1,好像只需要重置为1即可虽然写的有子页面的重新获取页数但有使用。
14 matlab 与java混合编程
在导入matlab包时由于选择的mtalab版本过高出现了缺少mclmcrrt8_3.dll文件,在低版本的matlab中找到该文件,一般在D:\workSoft\MATLAB\R2016a\runtime\win64 文件夹下,把该文件拷贝高版本的matlab中该问题解决,但会出现另一个问题,好像是jvm引起的问题,目前还没有解决。
15 matlab调用出错
在matlab中运行测试文件一直报错,后来发现是添加文件的问题,只添加了mainFunc 还要把同一文件夹下名字为matlb的添加进去方可
16 hql语句编写
在hql语句中:queryHelper.addCondition("pre.fingerprint1.fp1Id = ?", fp1.getFp1Id()); 双引号里面的是hql语句要按照数据库中定义好的属性即fingerprint1是一个属性,而不能直接写为fp1形式
17 训练模型
模型中的meanpeak保存到是合并后的x值即时间而不是峰值,在训练的时候根据x取出y,预测的时候输出的是峰值y。对于指纹图谱没有预测对应的列号为了界面显示方便就把预测对应的列号转变意思为对应的峰值序号,直接顺序保存进去,但在程序端没有写是直接在数据库中添加进去的后面可能需要修改一下,这样做主要就是为了模型详情查看时界面好写
18 数据库中峰值对应存贮
peaks_x是时间或波长,peaks_y存的是合并后对应的峰值,mean_peaks是合并后的时间或波长
19 峰值表的对应
峰值表的第一行是波长或时间,第二行是对应的峰值
20 指纹图谱输入数据
点数据中也是一样的所有的输入包含品种必须是数字,这里品种用的是0表示,均质1到5表示,具体对应查看数据表,预测的时候也只是取出来了这两个有效的。
21 输入峰值界面
左侧的是对应的峰值数据中自变量,可以是事件也可以是波长
22 输入数据的数字化
输入数据的数字化顺序是根据数据库中的顺序而来的,有些数据库中的顺序与excel中的数据不一致,这一点要注意。
0.0 1.0
0.0 2.0
0.0 3.0
0.0 4.0
0.0 5.0
1.0 6.0
1.0 7.0
1.0 8.0
我在训练的时候好像搞错了,直接写成上面的形式了,测试了下还能用。。。不知道什么情况。
23 Tomcat配置JVM内存
因为换了一种预测方法因此需要读入数据,番茄的数据比较多当读入列数较多时就会使JVM内存溢出,因此需要配置一下JVM的内存。在Tomcat/bin/catalina.bat下,网上普遍说的是从非注释的第一行写,我这里是第二行写如下代码即可:
24 豆腐表峰值点存贮
在豆腐表峰值点对应的x变量存储时发现mean_peaks是逆序的,这样有可能后面的数据也是逆序的,这一点要注意,记得把数据修改回来(自己写了在idea java中写了一个修改方法)。果然鱼糜的数据一直显示预测错误就是这个问题引起的。
25 页面跳转的时候为什么可以直接接收到对象
在jsp页面有如下的跳转代码:document.forms[0].action = "${ctx}/query/home_listUI.action?food.foodId=" + foodId;相应的action中只需要声明private Food food 在写上get和set方法就可以顺利的拿到的id值,但是为什么?
对于food.foodId这样的请求,jsp会自动的把它封装成对象的形式,food便会对象的名字,所以在action中或取的对象并不是我们在程序中构造真正的对象,而是根据http协议自动封装得到的对象,所以这个对象只能是你在请求时设置了什么参数它就有什么参数,没有设置便不会有该属性。
26 在进行查询时有些参数丢失
在tofindUI.jsp中allInput的输入框接收的参数在findUI.jsp中进行下一页时就会造成参数丢失,这样就导致了查询时参数的丢失,在toufu中利用<inpu type="hide" name="allInput" value=${allInput} />这个隐藏属性框即可。
0
Java项目出现的问题--实际项目01的更多相关文章
- Java 教程整理:基础、项目全都有
Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 网上有很多 Java 教程,无论是基础入门还是开发小项目的教程都比比皆是,可是系统的很少,对于Java 学习者来说找到系 ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Java学习路径及练手项目合集
Java 在编程语言排行榜中一直位列前排,可知 Java 语言的受欢迎程度了. 实验楼上的[Java 学习路径]中将首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE ...
- java web(学习笔记)项目路径问题
最近刚接触java web特别是是关于项目路径这一块很晕,就把自己遇到的一些疑惑和理解写下来. 首先贴上路径,这里用的是eclipse. 其中我们要注意看WebContent目录,这是web程序的根目 ...
- 如何在java代码中调用一个web项目jsp或者servlet
有时候需要调用一个web项目的jsp或者servlet,但是执行内部的代码,并不是打开jsp,例如需要在一段java代码中清除一个web项目中的缓存,那么可以把清除缓存的代码放在该web项目的一个se ...
- Myeclipse - Web项目转换技巧--处理Java项目、SVN非Web项目问题
喜欢从业的专注,七分学习的态度. 概述 对于Java调试,使用Eclipse习惯性的使用Junit调试,使用Myeclipse习惯性的将项目转成Web项目在Tomcat或Weblogic中调试,在My ...
- 【IDEA使用技巧】(4) —— IDEA 构建Java Maven项目、导入Eclipse项目、多Module Maven项目
1.IntelliJ IDEA构建Java Maven项目 1.1. IDEA构建Java Maven项目 ①选择Create New Project,选择创建Maven项目,并勾选Create fr ...
- Java协程编程之Loom项目尝鲜
前提 之前很长一段时间关注JDK协程库的开发进度,但是前一段时间比较忙很少去查看OpenJDK官网的内容.Java协程项目Loom(因为项目还在开发阶段,OpenJDK给出的官网https://ope ...
- centos7中配置java + mysql +jdk +使用jar部署项目
centos7中配置java + mysql +jdk +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...
随机推荐
- Scala当中parallelize并行化的用法
[学习笔记] parallelize并行化集合是根据一个已经存在的Scala集合创建的RDD对象.集合的里面的元素将会被拷贝进入新创建出的一个可被并行操作的分布式数据集.例如:val rdd03 = ...
- java http接口请求响应 request response
接口类: 1 package org.sunshine.dcda.epg.wechat.controller.niao; 2 3 import javax.servlet.http.HttpServl ...
- Jobs(三) HTML的form表单提交中文后,后台取出乱码的问题
解决form表单中提取的中文在后台乱码的问题有两种情况: form表单以GET方式提交: form表单以POST方式提交 一. 解决以GET方式提交的中文乱码问题,可以更改Tomcat服务器的配置文件 ...
- 怎样设置HTTP请求头Header
使用: xhr.setRequestHeader(); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.setRequest ...
- C++反汇编第四讲,认识多重继承,菱形继承的内存结构,以及反汇编中的表现形式.
目录: 1.多重继承在内存中的表现形式 多重继承在汇编中的表现形式 2.菱形继承 普通的菱形继承 虚继承 汇编中的表现形式 一丶多重继承在内存中的表现形式 高级代码: class Father1 { ...
- LeetCode 899. Orderly Queue
899. Orderly Queue(有序队列) 题目: 给出了一个由小写字母组成的字符串 S.然后,我们可以进行任意次数的移动. 在每次移动中,我们选择前 K 个字母中的一个(从左侧开始),将其从原 ...
- Python字符串的常用方法总结
tring.capitalize() 把字符串的第一个字符大写 string.center(width) 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 , end=len(str ...
- 1.DOS常用命令
d:+ 回车:盘符切换,进入D:盘 dir(directory):列出当前目录下的文件及文件夹md(make director):创建目录rd(remove director):删除目录(不能删除非空 ...
- echarts —— 重叠图
平时做堆叠图比较多,但是今天遇到一个要做重叠图的需求,记录一下~ 1.堆叠图,对应的 series: [] ,需要设置一个stack: "1",其中每个堆叠图的stack属性值都要 ...
- 使用postman修改SAP Marketing Cloud contact主数据
Marketing Cloud里的contact主数据,创建成功后也不是所有字段都能够被修改.在Personal data区域的字段是可以被修改的. 比如我在"客户属性"字段里维护 ...