1、注入sessionFactory
<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
比如我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提供的另外的兩個註解。
一個是前置執行,一個是後置執行
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語句中,不要在其他錯誤上浪費功夫
以上是我開發阿德一個簡易採購系統遇到的一些問題整理出來(部分),供以後查閱