`

最近一些J2EE bug总结

阅读更多
JavaEE项目中bug总结

一.
java.lang.NullPointerException  at org.apache.jsp.index_jsp._jspInit....[/b]
这个bug是我在转myeclipse项目到eclipse-jee / springSource中遇到的错误

原因是拷贝了一个jsp-api.jar的包到WEB-INF/lib目录下,删除这个文件即可,估计是拷贝的这个文件跟tomcat有冲突。
这里还有一点要提的是.classpath中
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
如果没有则要加上。一般都是自动生成的。


二.
java.lang.OutOfMemoryError: GC overhead limit exceeded

这个是JDK6新添的错误类型。是发生在GC占用大量时间为释放很小空间的时候发生的,是一种保护机制。解决方案是,关闭该功能,使用—— -XX:-UseGCOverheadLimit
解释:
JDK6新增错误类型。当GC为释放很小空间占用大量时间时抛出。
一般是因为堆太小。导致异常的原因:没有足够的内存。
解决方案:
1、查看系统是否有使用大内存的代码或死循环。
2、可以添加JVM的启动参数来限制使用内存:-XX:-UseGCOverheadLimit
在linux服务器中,重启tomcat时在其.sh文件中某行加入-XX:-UseGCOverheadLimit参数即可


三.
在web网络开发时,注意发布后,在网络上总有网络爬虫去爬你的网站,所以要对“必须登录”才能看到的东西要加过滤器处理,否则你的网站会因为请求太多,而挂掉,cpu飙到100%
例如我们我们网站,里面有导出功能和后台管理功能,都是类似下面的url
http://localhost:8080/abgent/export/exportByCategory?name=Stem%20Cell 导出
http://localhost:8080/abgent/admin/product/list 后台管理
我们在后台过滤其中加如下代码
User user = (User)request.getSession().getAttribute("user");
		if (((url.indexOf("/admin/") != -1) || (url.indexOf("/export/") != -1)) 
				&& ((user != null && !StringUtils.equals(user.getType().toString(), "Manager"))
				|| user == null)) {
			
			request.getRequestDispatcher("/user/toLogin").forward(request, response);
			return;
		}


四。
设置多对多的关系时,必须设置fetch = FetchType.EAGER,LAZY不可以,总报下面的错误
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role:
com.founder.core.model.Permission.roles, no session or session was closed

这个bug是我在webservice中对对象进行更改操作时遇见的

才在web.xml里面加了下面的filter,强制他们关联起来,这时就可以设置fetch = FetchType.LAZY了
<filter>
	<filter-name>hibernateFilter</filter-name>
	<filter-class>
		org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
	</filter-class>
	<init-param>
         <param-name>singleSession</param-name>
         <param-value>false</param-value>	 
        </init-param>
</filter>

<filter-mapping>
	<filter-name>hibernateFilter</filter-name>
	<url-pattern>/services/*</url-pattern>
</filter-mapping>

因为加了上面的filter,才出现了下面的错误
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in

read-only mode (FlushMode.MANUAL): Turn your
Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
这是就得必须加
<init-param>
     <param-name>singleSession</param-name>
     <param-value>false</param-value>	 
</init-param>



A cycle is detected in the object graph. This will cause infinitely deep XML

错误解决方式:在另一个po里面有与之关联的主键po对象用@XmlTransient 把它注释掉
转载http://taiwei-peng.iteye.com/category/114295?show_full=true
这就好比一个入口一样把每个po都映射了一下 我是这样解决的
这里还涉及到一对多的关系
解决方法如下:
在另一个po里面有与之关联的主键po对象用@XmlTransient 把它注释掉
这样就可以了
如果不注释会包这样的一个错
org.apache.cxf.interceptor.Fault: Marshalling Error: A cycle is detected in the object graph. This will cause

infinitely deep XML: com.tjsoft.model.sys.TBusiActivity@60310f ->

com.tjsoft.model.sys.TBusiQuestionnaire@12e18d7 -> com.tjsoft.model.sys.TBusiActivity@60310f
at org.apache.cxf.jaxb.JAXBEncoderDecoder.marshall(JAXBEncoderDecoder.java:159)
还有一个错误也是经常见到
org.apache.cxf.interceptor.Fault: Marshalling Error: com.tjsoft.module.activity.schem.LabelCount is not known

to this context
这个好像就是没有与之匹配的类
解决这个方法就是上面自定义一个类型用
@XmlElements({    
  @XmlElement(name="LabelCount",type=com.tjsoft.module.activity.schem.LabelCount.class)
})  
这个就可以解决,但是你必须把它暴露出去,也就是写一个方法返回一个自定义类型实现类可以什么都不用写
这就是我搞Webservice 遇到的难题。
分享到:
评论
1 楼 xiaomaha 2011-08-09  
ejb3.0 webservice如何处理懒加载?没有类似web.xml的东西,web项目到可以使用OpenSessionInViewFilter来处理,但EJB3.0的如何做啊?看到请回复,这个问题已经困扰多日了

相关推荐

    经典J2EE项目案例

    6. 项目总结 * 系统的分层结构很清晰,系统的可扩展性良好 * 方便后期维护 * 团队的协助和交流 * 合理的分工和必要技术都很重要 从第二个项目开始,我们可以看到不同的项目名称和描述,每个项目都有其特定的...

    J2EE项目管理

    在IT行业中,J2EE(Java 2 Platform, Enterprise Edition)是一种广泛应用于企业级应用开发的框架,它为构建分布式、多层的Web应用程序提供了全面的平台支持。...记得不断实践和总结,才能真正成为J2EE开发的专家。

    J2EE开发项目10大风险总结.docx

    描述: 如果在开发过程中没有足够的质量保证措施,可能导致系统不稳定,容易出现bug,影响用户体验。 症状: 测试覆盖率低,缺陷修复周期长,用户反馈问题多。 规避方案: 实施持续集成和自动化测试,确保尽早发现并...

    实用J2EE设计模式编程指南

    总结,"实用J2EE设计模式编程指南"涵盖了J2EE开发中的关键设计模式,旨在帮助开发者理解和应用这些模式,以构建高效、灵活和可维护的企业级应用。通过深入理解并实践这些模式,开发者能够提高代码质量,减少bug,...

    J2EE开发项目10大风险总结.pdf

    【症状】:bug频发,性能问题,代码可读性差 【规避方案】:实行代码审查,采用自动化测试,遵循编程规范,确保代码简洁、可读且易于维护。使用静态代码分析工具来检测潜在问题。 风险 5:忽视性能和负载测试 ...

    BUG管理系统

    总结来说,"BUG管理系统"是一个基于Java EE技术栈的项目,主要运用了Struts负责前端控制,Hibernate处理数据库操作,Spring进行整体的框架管理和数据访问集成。通过深入理解和熟练运用这些技术,可以构建出一个高效...

    J2EE项目数字校园.rar

    它是追踪问题、修复bug的重要参考资料。 通过这些文档,我们可以深入了解J2EE项目“数字校园”的开发流程、技术选型、测试策略以及质量控制措施,这对于理解和复用该项目的经验教训,或是进行类似项目开发,都具有...

    基于j2ee的网上书店

    总结,基于J2EE的网上书店项目综合运用了多种技术,构建了一个完整的电商系统,为用户提供了从浏览到购买的一站式购书体验。通过不断迭代和优化,这样的系统能够适应市场的需求,提升用户的满意度。

    协同办公项目实施总结

    协同办公项目实施总结 本资源摘要信息将对协同办公项目的实施总结进行详细的知识点生成,以便更好地理解项目的需求概述、功能...3. 项目管理过程中问题及对策:在系统集成测试阶段初期,测试小组所反馈的 bug 率较高

    J2EE Fusebox Application Framework-开源

    总结来说,J2EE Fusebox应用框架是Java开发者在构建复杂Web应用时的一个有力选择。它的开源性质、清晰的流程控制、组件化开发以及对J2EE标准的兼容性,都极大地提升了开发效率和应用质量。通过深入学习和熟练运用...

    web项目开发流程经验总结

    网页设计使用XHTML、CSS、JavaScript等技术实现,程序编写则涉及Java、J2EE等后端技术,以及数据库设计和服务器配置。同时,文档撰写是团队协作的重要环节,有助于信息传递和问题排查。 7. **系统整合**:将各个...

    jsp开发的公路运输优化系统

    总结起来,这个“jsp开发的公路运输优化系统”项目是一个实践J2EE技术的好例子,涉及到的主要知识点包括:JSP页面的创建与控制,Servlet的请求处理,JavaBean的业务逻辑封装,以及日志记录的使用。对于初学者,这个...

    十套c#面试题,基本包含了所有c#知识

    C# 面试题大总结 本资源摘要信息涵盖了 C# 面试题的方方面面,涵盖了 XML、XSD、XSL、J2EE、Persistent Object、加密算法、设计模式、架构设计、测试等多个方面的知识点。 XML、XSD、XSL 在面试题中,我们可以...

    Enterprise.JavaBeans.Developers.Guide

    - **学习J2EE**:推荐了一些学习资源,帮助读者更好地掌握J2EE技术栈。 #### 四、开发企业JavaBeans - **为什么需要企业JavaBeans**: - 为了实现业务逻辑的重用。 - 便于组件化开发,提高系统的可维护性和灵活性...

    JIRA简要使用指南

    JIRA 是一个基于 J2EE 的问题跟踪管理系统,由 Atlassian 开发。它被广泛地应用于开源软件组织和全球著名的软件公司。JIRA 能够很好地管理项目(或产品)研发维护过程出现的缺陷、问题、改进、新功能以及新任务,...

    java版进销存管理系统

    总结来说,Java版进销存管理系统利用了J2EE的丰富组件和强大的数据库支持,实现了对企业进销存流程的高效管理。其完整源代码对于学习和实践Java Web开发有着很高的参考价值。理解并掌握这一系统,有助于提升开发者在...

    JPetStore5(更正了其中的2个错误)

    具体的错误修正细节可能涉及代码bug修复、逻辑调整或配置优化,这为开发者提供了一个良好的学习案例,如何在遇到问题时进行调试和改进。 **总结** JPetStore5是一个优秀的学习资源,它涵盖了J2EE开发的多个重要...

    oak-mk-0.19.zip

    "findbugs-plugin"就是这样一个强大的工具,它专门针对Java平台,特别是J2EE开发,能够帮助我们发现潜在的bug和设计问题。本文将详细介绍"findbugs-plugin"及其在开源项目中的应用。 "findbugs-plugin"是由Oak公司...

    apache-tomcat-8.0.44

    10. **社区支持**:作为开源项目,Apache Tomcat有强大的社区支持,开发者可以从中获取帮助,解决遇到的问题,也可以参与项目的发展,贡献代码或报告bug。 总结来说,Apache Tomcat 8.0.44是一个功能丰富的Web...

Global site tag (gtag.js) - Google Analytics