Java 常见错误

Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/EntityListeners
 at org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.getDefaults(JPAMetadataProvider.java:96)
 at org.hibernate.annotations.common.reflection.java.JavaReflectionManager.getDefaults(JavaReflectionManager.java:226)
 at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1355)
 at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826)
 at StufentTest.main(StufentTest.java:18)

今天下午运行一个简单的hibernate出现的错误,用的是hibernate-distribution-3.6.0.Final,找不出错误在什么地方,就到网上查。

三种说法:

(1)

在使用Hibernate3的时候,发现程序编译好了,在运行时总是抛出java.lang.NoClassDefFoundError: javax/persistence/EntityListeners异常,经查找是因为缺少ejb3-persistence.jar包。 

只需要在类库中加入ejb3-persistence.jar,就不会出现这个异常了。 

这里不理解的是Hibernate3, 为什么不把ejb3-persistence.jar直接放到自己需要的类库中,而非让用户自己找,去添加。

(2)版本冲突,解决好像是把包一个个导入。

(3)Hibernate 3.6是需要依靠JPA。所以只要把JPA的包导入就可以了,hibernate-distribution-3.6.0.Final/lib/jpa/hibernate-jpa-2.0-api-1.0.0.Final.jar。

我只用了简单的第三种方法


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

公司的站点是跑在jboss环境下的,运行一段时间后,有时会报这样的错误:java.lang.OutOfMemoryError: PermGen space
在网上查询了一下,大部分都说是jvm虚拟机的内存参数相关,需要调整内存参数。
大致过程如下:
vi /jboss/bin/run.bat
找到:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m -XX:MaxPermSize=256m
改为:
set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=512m
保存退出
重启下jboss.
应该就可以解决此类问题。
注:
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)那么就会产生此错误信息了。
 
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值。
 
1G内存环境下java jvm 的参数设置参考:

JAVA_OPTS="-server -Xms800m -Xmx800m  -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



SVN 递交失败,提示access to xxxxx/!svn/act/{xxxxxxxxxx} Forbidden的解决办法

SVN 递交失败,提示access to xxxxx/!svn/act/{xxxxxxxxxx} Forbidden,

查看该用户也有此svn库的读写权限,可怎么回事呢,

原来 svn 在Check out等操作时,是URL大小写不敏感的,但是在Commit/Delete操作时却是URL大小写敏感的,所以在设定SVN的服务器路径时,一定要注意大小写保持一致。





SVN 递交失败,提示access to xxxxx/!svn/act/{xxxxxxxxxx} Forbidden的解决办法

SVN 递交失败,提示access to xxxxx/!svn/act/{xxxxxxxxxx} Forbidden,

查看该用户也有此svn库的读写权限,可怎么回事呢,

原来 svn 在Check out等操作时,是URL大小写不敏感的,但是在Commit/Delete操作时却是URL大小写敏感的,所以在设定SVN的服务器路径时,一定要注意大小写保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值