欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jboss错误一览

程序员文章站 2022-03-31 16:20:20
...

   Jboss作为应用服务器,已经体现出强大的价值。本文将对Jboss的一些相关错误做持续跟踪。

1.loader: No ClassLoaders found for: org.apache.xerces.dom.DOMXSImplementationSourceImpl

这个错误不是程序错误,是启动时xml读取资源出现的问题,一般会是两个工程冲突造成

解决办法:重新下个jboss,比如我的是jboss4.2.3.

2.java.lang.OutOfMemoryError: PermGen space

这其实是java虚拟机的错误。JVM在启动时,将大量第三方jar和class文件放到 permGen区域里面(内存永久区),这里面的东西无法被gc回收,当你的jar和class里面存的东西太多了,就会导致溢出。解决办法是调整jvm配置参数。如果是eclipse或者myeclipse在跑的话,直接window--preferences--servers--jbossX--JDK--Optional Java VM arguments:里面写入

-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m.如果是直接run.bat启动的话,直接修改jboss的配置文件。

3.javax.persistence.PersistenceException: org.hibernate.MappingException:

错误原因:javax.persistence.Query这个类,需要调用entityManager的createNativeQuery方法,不是createNamedQuery方法,别写错了。如果是createNamedQuery,则需要在xml里面配置。

解决方法:将createNamedQuery改为createNativeQuery。

4.jboss提示找不到方法,即使ear包里面有这些方法。

错误原因:可能是myeclipse的编译bug,插件问题,使得java文件编译出现问题。

解决办法:重新建立个方法,建立相应的类。

5.getOutputStream() has already been called for this response,这个是因为同时调用了getWriter()和 response.getOutputStream()。

解决办法:步骤1:注意调用getWriter()或response.getOutputStream()后,先要调用response.getOutputStream(),将流清空。步骤2:如果是sturts2,记住方法结束后"return NONE",交给stuts2管理,如果return ERRROR或者SCCESS都有可能出问题。这里再次说明,细节很重要。

6.zip文件总是以action的名字结尾,而不是自定义的命名,不论怎么改。

原因:在response.addHeader之前调用out.flusht和response.getOutputStream()了 。

解决办法:把out.flusht和response.getOutputStream()放在response.addHeader之后 。