从新手到专业:EJB3应用开发指南

需积分: 0 0 下载量 101 浏览量 更新于2024-07-28 收藏 6.97MB PDF 举报
"BEGINNING EJB 3 APPLICATION DEVELOPMENT" 《 Beginning EJB 3 Application Development》是一本专为Java EE 5 API,特别是EJB 3技术提供深入指导的书籍。这本书由Raghu R. Kodali, Jonathan Wetherbee与Peter Zadrozny共同编写,并由Floyd Marinescu(《EJB Design Patterns》的作者)作序。它旨在帮助初学者到专业人士全面掌握基于EJB 3的应用程序开发。 EJB(Enterprise JavaBeans)是Java平台上的企业级组件模型,用于构建可部署在服务器端的分布式应用程序。EJB 3是其一个重要的版本,引入了许多简化开发的特性,如注解驱动的编程模型,使得EJB更轻量级、易于使用。 本书涵盖了以下核心知识点: 1. **EJB 3基础**:介绍EJB 3的基本概念,包括实体Bean(Entity Beans)、会话Bean(Session Beans)和消息驱动Bean(Message-Driven Beans),以及它们在Java EE 5架构中的角色。 2. **注解驱动开发**:EJB 3引入了注解,允许开发者在类和方法上直接标注元数据,减少了XML配置的需求。书中会讲解如何使用@Stateless、@Stateful、@Singleton、@PersistenceContext和@PersistenceUnit等注解。 3. **容器管理的持久性(CMP)**:EJB 3中的实体Bean可以通过容器管理的持久性来处理数据库交互,降低了对JDBC和SQL的依赖。 4. **Java Persistence API (JPA)**:JPA是EJB 3的一部分,提供了对象/关系映射(ORM)功能,用于管理数据库中的对象。书中会详细介绍JPA的使用,包括实体关系映射、查询语言(JPQL)和 Criteria API。 5. **事务管理**:EJB 3支持声明式事务管理,开发者可以不用显式地控制事务边界,而是通过注解来定义事务属性。 6. **安全性**:EJB 3提供了内置的安全机制,包括角色基的安全性和方法级别的访问控制。书中会讲解如何配置和使用这些安全特性。 7. **会话Bean的生命周期和并发管理**:探讨了无状态和有状态会话Bean的生命周期,以及如何处理并发访问。 8. **分布式计算**:EJB 3允许创建可跨多个节点的分布式应用程序,书中会讲解如何设计和实现这样的解决方案。 9. **集成与测试**:介绍如何与其他Java EE组件(如Servlets、JSP、JSF)集成,以及如何进行单元测试和集成测试。 10. **最佳实践与案例研究**:书中包含实际项目案例,提供从零开始构建EJB 3应用的详细步骤,帮助读者理解并掌握最佳实践。 通过阅读此书,读者将能够熟练地利用EJB 3技术构建高效、可靠的Java EE应用程序和服务,从而从新手成长为专业开发者。

com.bes.enterprise.appserv.deployment.exception.StartupFailedException: Exception occurred while starting the application. at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:253) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.applyDeploymentContext(AppDeployManager.java:297) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.doLoad(AppDeployManager.java:245) at com.bes.enterprise.appserv.deployment.manager.ApplicationLifecycle.load(ApplicationLifecycle.java:77) at com.bes.enterprise.appserv.deployment.AppDeployer.load(AppDeployer.java:264) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doLoad(EnableApplicationHandler.java:133) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.load(EnableApplicationHandler.java:71) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doApplicationProcess(EnableApplicationHandler.java:54) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:69) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:66) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$TerminableThread.run(AbstractApplicationHandler.java:177) Caused by: com.bes.enterprise.ejb.BESException: Creating application failed: /besweb/webapp/prpall: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:458) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:342) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:331) at com.bes.enterprise.ejb.assembler.classic.Assembler.createApplication(Assembler.java:258) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:251) ... 14 more Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.webtier.core.ContainerBase.addChildInternal(ContainerBase.java:745) at com.bes.enterprise.webtier.core.ContainerBase.addChild(ContainerBase.java:717) at com.bes.enterprise.webtier.core.DefaultHost.addChild(DefaultHost.java:711) at com.bes.enterprise.webext.BESWebAppBuilder.deployWebApps(BESWebAppBuilder.java:511) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.deployWebApps(ApplicationDeployer.java:1499) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:437) ... 18 more

2023-07-25 上传