日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

eclipse 环境下整合 struts2+spring+hibernate 开发web应用常见问题及解答

發(fā)布時間:2024/4/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 eclipse 环境下整合 struts2+spring+hibernate 开发web应用常见问题及解答 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
索引

1. org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():

2. org.hibernate.exception.SQLGrammarException: could not update

3. com.microsoft.sqlserver.jdbc.SQLServerException: 當(dāng) IDENTITY_INSERT 設(shè)置為 OFF 時,不能為表 'COMPONENT' 中的標(biāo)識列插入顯式值。

4. 如何讓struts配置文件ApplicationResources.properties生效

5. eclipse java.lang.OutOfMemoryError: Java heap space 解決方案

6. Spring2 struts2 hibernate3 后臺測試時報的錯 Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.解決方案

7. Oracle Database Error ORA-02289  ORA-02289 sequence does not exist

8. org.hibernate.PropertyValueException: not-null property references a null or transient value.?
9. EJB異常:identifier of an instance of xx was altered from x to x


1. org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save()

異常原因:
<id>元素配置不正確,<id>元素缺少其子元素<generator></generator>的配置。
解決方法:
<id>元素映射了相應(yīng)數(shù)據(jù)庫表的主鍵字段,對其子元素<generator class="">,其中class的取值可以為increment、identity、sequence、hilo、native……等,更多的可參考hibernate參考文檔,一般取其值為native 功能是適應(yīng)本地數(shù)據(jù)庫。

exp:

<hibernate-mapping>
??? <class name="com.fqf.Vipdata" table="vipdata" catalog="test">
??????? <id name="vipId" type="java.lang.Integer">
??????????? <column name="vipId" />
??????????? <generator class="assigned" />
??????? </id>
??????? <property name="vipName" type="java.lang.String">
??????????? <column name="vipName" length="20" not-null="true" />
??????? </property>
??????? <property name="vipTitle" type="java.lang.String">
??????????? <column name="vipTitle" length="20" not-null="true" />
??????? </property>
??? </class>
</hibernate-mapping>

看看數(shù)據(jù)庫表中的 id 是不是自增長類型,如果是自增長類型,把<generator class="assigned" />中assigned改為identity

(vipId的類型為自增長)

2. org.hibernate.exception.SQLGrammarException: could not update

錯誤原因:

  xxx.hbm.xml與數(shù)據(jù)庫表字段類型不匹配。

解決方法:

  重新反轉(zhuǎn)生成hbm文件。或者手動修改相應(yīng)字段為匹配類型。

3. com.microsoft.sqlserver.jdbc.SQLServerException:

4. 如何讓struts配置文件ApplicationResources.properties生效

在src目錄下添加文件struts.properties文件,并在其中書寫一行

struts.custom.i18n.resources=com.comp.struts.resources.ApplicationResources

重啟tomcat,即可生效

國際化將文件轉(zhuǎn)換為二進制方法:

native2ascii -encoding UTF-8 ApplicationResources.properties ApplicationResources_zh_CN.properties

參考文獻:

ssh之struts第一篇:struts國際化:http://blog.csdn.net/rookieStudent/archive/2010/03/21/5401516.aspx
?

5. eclipse java.lang.OutOfMemoryError: Java heap space 解決方案

?eclipse java.lang.OutOfMemoryError: Java heap space 解決方案2008年11月24日 星期一 下午 01:57eclipse 有啟動參數(shù)里設(shè)置jvm大小,因為eclipse運行時自己也需要jvm,所以eclipse.ini里設(shè)置的jvm大小不是具體某個程序運行時所用jvm的大小,這和具體程序運行的jvm大小無關(guān)。

那么怎么才能設(shè)置某個程序的jvm大小呢(當(dāng)然控制臺運行的話不會存在這個問題,如:java -Xms256m -Xmx1024m classname,這樣就可以把當(dāng)前程序的jvm大小給設(shè)定)?

因為eclipse里默認的一個程序的jvm配置為:-Xms8m -Xmx128m,所以我們的處理耗內(nèi)存比較大時需要手動調(diào)整一下,以便不會內(nèi)存溢出。具體的設(shè)置方法為:

選中被運行的類,點擊菜單‘run->run...’,選擇(x)=Argument標(biāo)簽頁下的vm arguments框里輸入 -Xmx512m, 保存運行就ok了

因為我使用的是tomcat服務(wù)器,可以在tomcat configure 的java標(biāo)簽下面直接進行修改。修改方式如下:

打開 configure tomcat,在 Java 選項卡中,下方,會有
Inital memory Pool:??
Maximum memory Pool:
Thread stack size:
三個輸入框,在這里即可不用做上面的操作,直接配置內(nèi)存大小,只需要設(shè)置
Inital memory Pool 為 256
Maximum memory Pool 為 512

點擊確定后,重啟tomcat 生效。

但這種方法只能作用于手動啟動tomcat,使用eclipse啟動時還是會報錯。

在eclipse中配置java內(nèi)存的啟動參數(shù),要采用下面的方法:
A.windows->preference->java->instal jres->edit,增加參數(shù):-Xms256m -Xmx512m
或者
B.windows->preferences..->tomcat->jvm..->jvm文本框里,添加-Xms256m -Xmx512m

如果使用myeclipse,
窗口->首選項->MyEcliipse->Application Servers->Tomcat->Tomcat5.x->JDK->Optional Java VM arguments中填寫一下內(nèi)容。
-Xms128m -Xmx256m
-Dcom.sun.management.jmxremote=true

?參考文獻:

如何修改tomcat內(nèi)存大小:http://edu.codepub.com/2010/0327/21418.php

增加eclipse啟動的Tomcat內(nèi)存的方法: http://wallimn.javaeye.com/blog/693158

??

6. Spring2 struts2? hibernate3 后臺測試時報的錯 Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter. <init> 解決方案

因為cglib 包和asm包沖突

開始用的cglib包是cglib-2.1.3.jar? ,后來換了一個cglib-nodep-2.2.jar才測試通過.

7. Oracle Database Error ORA-02289  ORA-02289 sequence does not exist

表示系統(tǒng)未找到相應(yīng)的sequence,有以下兩種可能:

(1)數(shù)據(jù)庫訪問用戶的權(quán)限不夠,應(yīng)該更換用戶或增加權(quán)限以訪問用戶。

(2)hibernate 映射文件配置不正確,映射文件中的id采用oracle自動生成時需要采用native方式,若使用hibernate時采用sequence方式。hibernate會默認查找"hibernate_sequence"這一序列。xml映射文件中的子元素generator來說明主鍵的產(chǎn)生方式,此處指定的是“native”,表示根據(jù)數(shù)據(jù)庫來選擇,比如,對于Oracle數(shù)據(jù)庫,它會去尋找一個sequence(默認情況下,它會去尋找一個名為“hibernate_sequence”的sequence),我們可以用參數(shù)param來指定一個sequence。而property用來指定Student.java類中的屬性和Student數(shù)據(jù)庫表之間的對應(yīng)關(guān)系,以及各個字段的數(shù)據(jù)類型。在這個例子中,我們指定的數(shù)據(jù)類型是Java語言中的數(shù)據(jù)類型(此時需要指定引用類型數(shù)據(jù)),我們也可以使用Hibernate中自定義的數(shù)據(jù)類型,限于篇幅,在本文中不一一講解。

?

8. ?org.hibernate.PropertyValueException: not-null property references a null or transient value.

表示數(shù)據(jù)庫的非空字段映射到本地的可為空的字段中。檢查是否沒有給非空字段賦值。

?

9. EJB異常:identifier of an instance of?xx was altered from?x to x請檢查Role類的主鍵屬性是否是封裝類型。例如:Integer,Long ……。不能是int,long等數(shù)據(jù)類型。

當(dāng) IDENTITY_INSERT 設(shè)置為 OFF 時,不能為表 'COMPONENT' 中的標(biāo)識列插入顯式值
分析:也許你的id是這樣配置的:
<id name="id" type="integer">
??????????? <column name="id" />
??????????? <generator class="increment" />
</id>

increment是由Hibernate自動以自增的方式生成主鍵
identity是由底層數(shù)據(jù)庫生成的標(biāo)識符
當(dāng)數(shù)據(jù)庫中的ID為自動增長的時候采用increment當(dāng)然會報“無法顯示為主鍵插入值”

把主鍵生成方式改為identity或者你的操作表的主鍵沒有被設(shè)置為自動增長。

轉(zhuǎn)載于:https://www.cnblogs.com/destimarve/archive/2010/06/23/ssh2.html

總結(jié)

以上是生活随笔為你收集整理的eclipse 环境下整合 struts2+spring+hibernate 开发web应用常见问题及解答的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。