Jboss错误一览
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之后 。
上一篇: Python安装扩展包教程