java异常求助~高手来啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java异常求助~高手来啊相关的知识,希望对你有一定的参考价值。

org.apache.jasper.JasperException: org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [applicationContext.xml]; nested exception is java.lang.ArrayIndexOutOfBoundsException: 27233
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.bodagis.yjtc.util.SetCodeFilter.doFilter(SetCodeFilter.java:66)
使用了spring框架和MD5编码,不知道怎么会出现这样的错误在本机上能很好运行到服务器上就不行了

麻烦说具体点
谢谢很着急的

在服务器上直接用TOMCAT不能直接运行

只有用MyEclipseli里面启动TOMCAT又能运行

环境变量是对的,具体需要看什么东西才能看出来

配置文件是对的

很郁闷

parsing XML document from class path resource [applicationContext.xml]

这个是找不到配置文件,是根据环境变量为基础查找这个文件的,估计是服务器上的环境变量和你机器上的不一样
参考技术A 最主要是这句
nested exception is java.lang.ArrayIndexOutOfBoundsException: 27233

嵌套的内部是个数组越界异常

但是光从这里无法推断错误原因,最好再贴点东西出来。或者说明是什么时候出的错。
参考技术B MyEclipse 开发容易出现移植问题
上面错误 是配置文件解析错误,下标越界
你看是不是有些Jar包没有和工程一起发布
是兼容性问题
参考技术C 不知道的别乱说,误人呢!
Unexpected exception 意料不到的异常(肯定是能找到文件的)。
nested exception 内嵌的异常。

你这么光贴个异常很难给你排错。那个兄弟说的:跑跑流程。
参考技术D 自己好好走走请求的流程吧,应该是配置文件里没写对 第5个回答  2009-08-10 最重要的是第一行,应该是一个数组溢出的异常。

jvm高手来啊,xms和xmx一样出现问题.

我看到这样的一段话:
我把-Xms和-Xmx设置成一样时,那就意味着,只有当java使用完所有内存时才会回收垃圾,这样一来内存当然不停的涨。
我就不理解内存不停的涨,我是这样想的,-Xms和-Xmx设置成一样时,xmx已有最大值啊,为什么还说不停的涨啊。

这句话里“内存不停的涨”的意思是在Xmx的范围内内存的占用会不停的涨,但是一旦涨到达到Xmx值的时候就会进行垃圾回收了,内存分配不会超过这个值的,如果进行垃圾回收后仍然不够用,就会报内存溢出的错误。

附:
JVM申请一块内存的过程:
A. JVM会试图为相关Java对象在Eden中初始化一块内存区域
B. 当Eden空间足够时,内存申请结束。否则到下一步
C. JVM试图释放在Eden中所有不活跃的对象(这属于1或更高级的垃圾回收);释放后若Eden空间仍然不足以放入新对象,则试图将部分Eden中活跃对象放入Survivor区/OLD区
D. Survivor区被用来作为Eden及OLD的中间交换区域,当OLD区空间足够时,Survivor区的对象会被移到Old区,否则会被保留在Survivor区
E. 当OLD区空间不够时,JVM会在OLD区进行完全的垃圾收集(0级)
F. 完全垃圾收集后,若Survivor及OLD区仍然无法存放从Eden复制过来的部分对象,导致JVM无法在Eden区为新对象创建内存区域,则出现”out of memory错误”

另:
xms/xmx:定义YOUNG+OLD段的总尺寸,ms为JVM启动时YOUNG+OLD的内存大小;mx为最大可占用的YOUNG+OLD内存大小。在用户生产环境上一般将这两个值设为相同,以减少运行期间系统在内存申请上所花的开销。追问

我的意思是ms和mx设置一样时,把ms看成mx,那么启动后,内存的大小是最大的,但是这个最大是规定了,为什么规定了还不停的涨。

追答

YOUNG+OLD段的总尺寸不会超过你设置的mx值的,如果超过的话会报“out of memory错误”;那个所谓的”不停的涨“的意思是在mx的范围内不停的涨,直到达到这个值。

参考技术A 只有当java使用完所有内存时才会回收垃圾,这样一来内存当然不停的涨。这说的不对!
jvm gc是分代进行的,大致分为年轻代、老年代和持久代,-Xms和-Xmx是针对heep设置的,也就是年轻代和老年代,一定次数的年轻代gc还存活的对象或年轻代大小不够放的对象才会进老年代,而老年代的空间不够用时才会进行一次full gc。
所以说如果不存在内存泄漏的情况下内存应该不会不停的涨,当然超过了就内存溢出了
可以了解下jvm gc
参考技术B 只有当java使用完所有内存时才会回收垃圾,这样一来内存当然不停的涨。这说的不对

以上是关于java异常求助~高手来啊的主要内容,如果未能解决你的问题,请参考以下文章

java多线程访问被限制问,高分求助 高手给个思路或方法

java高手来啊,字符串相等问题

java问题 ~~求教高手 13) 以下关于异常的说法,错误的是

JAVA Dom4j解析XML文件异常,请高手帮忙

用JAVA往数据库写入数据,既没有抛出异常,也没有写入成功,求高手指教???急啊!

jvm高手来啊,xms和xmx一样出现问题.