用SSH做采购系统遇到的问题
2016-01-09 17:03
239 查看
1、注入sessionFactory
<bean id="userDao" class="com.UserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
把<ref bean 改成<ref local
2、
3、SQL Error: 1364, SQLState: HY000 ;Field 'account' doesn't have a default value
解决方法:把<generator class="native"></generator>改成<generator class="increment"></generator>
4、No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
这里不是每次都能拿到当前的session的,即getCurrentSession不是总是能获取非空值。
你可以在getSession方法里面给一个判断,如果sessionFactory.getCurrentSession();的返回值为空的话,就用sessionFactory.openSession();方法来新开一个session来返回就行了。
5、jsp如何获得action中保存的session
jsp获取action传来的session值问题有一下几种方法:
比如我action中有个session ("sessionid","11111111")
一、用struts标签获取:<s:property value="#session.sessionid"/>
二、<%=request.getSession.getAttribute("sessionid");> session也是内置对象之一,可以直接用session,比request.getSession方便多了
也可以写成<%=session.getAttribute("sessionid");>
三、el表达式获取:${sessionScope.sessionid}
如果赋值的是个bean,也是一样的,类似于${sessionScope.bean.beansth}
6、No suitable Log implementation没有合适的日志实现
应该是打开日志的时候出现的错误
7、struts2的action需要继承或实现什么
一般用在AOP方式的测试上。
一个是前置执行,一个是后置执行
10、Don't
know how to iterate over supplied "items" in <forEach>
解释:传的不是集合所以不能遍历
11、org.hibernate.exception.DataException:
Could not execute JDBC batch update
解释一:对象中没有足够的自由线程来完成操作
14、java.lang.OutOfMemoryError: PermGen space
<bean id="userDao" class="com.UserDaoImpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
把<ref bean 改成<ref local
2、
SQL Error: 1064, SQLState: 42000错误原因
保留字被引起来后可以用作识别符。如果在表中使用这些会报1064,42000错误。
ADD | ALL | ALTER |
ANALYZE | AND | AS |
ASC | ASENSITIVE | BEFORE |
BETWEEN | BIGINT | BINARY |
BLOB | BOTH | BY |
CALL | CASCADE | CASE |
CHANGE | CHAR | CHARACTER |
CHECK | COLLATE | COLUMN |
CONDITION | CONNECTION | CONSTRAINT |
CONTINUE | CONVERT | CREATE |
CROSS | CURRENT_DATE | CURRENT_TIME |
CURRENT_TIMESTAMP | CURRENT_USER | CURSOR |
DATABASE | DATABASES | DAY_HOUR |
DAY_MICROSECOND | DAY_MINUTE | DAY_SECOND |
DEC | DECIMAL | DECLARE |
DEFAULT | DELAYED | DELETE |
DESC | DESCRIBE | DETERMINISTIC |
DISTINCT | DISTINCTROW | DIV |
DOUBLE | DROP | DUAL |
EACH | ELSE | ELSEIF |
ENCLOSED | ESCAPED | EXISTS |
EXIT | EXPLAIN | FALSE |
FETCH | FLOAT | FLOAT4 |
FLOAT8 | FOR | FORCE |
FOREIGN | FROM | FULLTEXT |
GOTO | GRANT | GROUP |
HAVING | HIGH_PRIORITY | HOUR_MICROSECOND |
HOUR_MINUTE | HOUR_SECOND | IF |
IGNORE | IN | INDEX |
INFILE | INNER | INOUT |
INSENSITIVE | INSERT | INT |
INT1 | INT2 | INT3 |
INT4 | INT8 | INTEGER |
INTERVAL | INTO | IS |
ITERATE | JOIN | KEY |
KEYS | KILL | LABEL |
LEADING | LEAVE | LEFT |
LIKE | LIMIT | LINEAR |
LINES | LOAD | LOCALTIME |
LOCALTIMESTAMP | LOCK | LONG |
LONGBLOB | LONGTEXT | LOOP |
LOW_PRIORITY | MATCH | MEDIUMBLOB |
MEDIUMINT | MEDIUMTEXT | MIDDLEINT |
MINUTE_MICROSECOND | MINUTE_SECOND | MOD |
MODIFIES | NATURAL | NOT |
NO_WRITE_TO_BINLOG | NULL | NUMERIC |
ON | OPTIMIZE | OPTION |
OPTIONALLY | OR | ORDER |
OUT | OUTER | OUTFILE |
PRECISION | PRIMARY | PROCEDURE |
PURGE | RAID0 | RANGE |
READ | READS | REAL |
REFERENCES | REGEXP | RELEASE |
RENAME | REPEAT | REPLACE |
REQUIRE | RESTRICT | RETURN |
REVOKE | RIGHT | RLIKE |
SCHEMA | SCHEMAS | SECOND_MICROSECOND |
SELECT | SENSITIVE | SEPARATOR |
SET | SHOW | SMALLINT |
SPATIAL | SPECIFIC | SQL |
SQLEXCEPTION | SQLSTATE | SQLWARNING |
SQL_BIG_RESULT | SQL_CALC_FOUND_ROWS | SQL_SMALL_RESULT |
SSL | STARTING | STRAIGHT_JOIN |
TABLE | TERMINATED | THEN |
TINYBLOB | TINYINT | TINYTEXT |
TO | TRAILING | TRIGGER |
TRUE | UNDO | UNION |
UNIQUE | UNLOCK | UNSIGNED |
UPDATE | USAGE | USE |
USING | UTC_DATE | UTC_TIME |
UTC_TIMESTAMP | VALUES | VARBINARY |
VARCHAR | VARCHARACTER | VARYING |
WHEN | WHERE | WHILE |
WITH | WRITE | X509 |
XOR | YEAR_MONTH | ZEROFILL |
解决方法:把<generator class="native"></generator>改成<generator class="increment"></generator>
4、No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here
这里不是每次都能拿到当前的session的,即getCurrentSession不是总是能获取非空值。
你可以在getSession方法里面给一个判断,如果sessionFactory.getCurrentSession();的返回值为空的话,就用sessionFactory.openSession();方法来新开一个session来返回就行了。
5、jsp如何获得action中保存的session
jsp获取action传来的session值问题有一下几种方法:
比如我action中有个session ("sessionid","11111111")
一、用struts标签获取:<s:property value="#session.sessionid"/>
二、<%=request.getSession.getAttribute("sessionid");> session也是内置对象之一,可以直接用session,比request.getSession方便多了
也可以写成<%=session.getAttribute("sessionid");>
三、el表达式获取:${sessionScope.sessionid}
如果赋值的是个bean,也是一样的,类似于${sessionScope.bean.beansth}
6、No suitable Log implementation没有合适的日志实现
应该是打开日志的时候出现的错误
7、struts2的action需要继承或实现什么
Struts2的action主要有两种方式: 1.实现Action 接口 (implements Action)2、继承ActionSupport类(1)Actionsupport这个工具类在实现了Action接口的基础上还定义了一个validate()方法,重写该方法,它会在execute()方法之前执行,如校验失败,会转入input处,必须在配置该Action时配置input属性。 (2)另外,Actionsupport还提供了一个getText(String key)方法还实现国际化,该方法从资源文件上获取国际化信息,这样在自定义标签时可以定义一个变量为new actionsupport对象实现国际化。9、@BeforeClass什么作用@BeforeClass @AfterClass注解是junit提供的另外的两个注解。
一般用在AOP方式的测试上。
一个是前置执行,一个是后置执行
10、Don't
know how to iterate over supplied "items" in <forEach>
解释:传的不是集合所以不能遍历
11、org.hibernate.exception.DataException:
Could not execute JDBC batch update
有可能是你的实体类总的数据类型与数据库中字段的类型对应的不一致,导致更新的时候出错.比如数据库是number类型,但是你在实体中设置为string.检查一下,也有可能是属性的个数不一致
12、java.sql.BatchUpdateException: Data truncation: Data too long for column 'price' at row 1
这个是因为数据库字段的长度为0
13、thread pool Exception线程池异常
解释一:对象中没有足够的自由线程来完成操作
14、java.lang.OutOfMemoryError: PermGen space
对于我的程序出现这种情况是因为我再服务器上多次发布了我的同一个项目(大量的class文件)引起的,其实项目只要第一次发布到服务器上就可以了,不用再次发布(重启服务器的时候)
网上解释原因:
一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域, 这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中, 它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对 PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误, 这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。 解决方法: 手动设置MaxPermSize大小修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=128m 建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。 二、java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 解决方法:手动设置Heap size 修改TOMCAT_HOME/bin/catalina.sh 在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:MaxNewSize=256m" 三、实例,以下给出1G内存环境下java jvm 的参数设置参考: JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "
15、java.lang.reflect.InvocationTargetException
我碰到该问题的根源是实体文件被我改过,而映射文件没有修改导致的问题
16、The content of element type "package" must match "(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-exception- mappings?,action*)". 原因:package里元素必须按照一定的顺序排列:
result-types interceptors default-interceptor-ref default-action-ref default-class-ref global-results global-exception-mappings action*(所有action放到最后) 我得情况是struts里面有没被标签包住的字符
17、Encountered "<EOF>" at line 1, column 1.
SQL语句语法错误,最有可能的是你的引号""少了一个,没有引好。
18、com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'number' in 'where clause' 这个错误一定产生在sql语句中,不要在其他错误上浪费功夫
以上是我开发阿德一个简易采购系统遇到的一些问题整理出来(部分),供以后查阅
相关文章推荐
- Linux Generating SSH Keys
- perl脚本实现限制ssh最大登录次数(支持白名单)
- rsync ssh 数据同步分析
- 搭建SSH时的思考和遇到的几个问题的解决方法
- SSH 使用原理 与解释
- SSH整合中 hibernate托管给Spring得到SessionFactory
- Linux VPS利用SSH重置ROOT密码的方法
- ssh,scp自动登陆的实现方法
- linux下使用ssh远程执行命令批量导出数据库到本地
- shell脚本实现ssh自动登录功能分享
- linux下ssh安装与scp命令使用详解
- ssh项目环境搭建步骤(web项目)
- 脚本实现SSH登录邮件报警
- Linux SSH 安全策略 限制 IP 登录方法
- 解决SSH连接超时的2个配置方法
- 用shell脚本防ssh和vsftpd暴力破解的详解讲解
- 内网ssh/mysql登录缓慢的解决方法
- Java实现SSH模式加密
- Linux sshd_config配置手册中文版